GRPC服务,grpc部署

  GRPC服务,grpc部署

  1、安装python所需的库。

  pipinstallgrpcio

  pipinstallgrpcio工具

  2、定义gRPC接口。

  语法= proto3

  option cc _ generic _ services=true;

  //定义服务接口

  serviceGrpcService{

  普切罗(HelloRequest)返回(HelloResponse){}//一个服务中可以定义多个接口,也就是多个函数功能

  }

  //请求的参数

  messageHelloRequest{

  字符串数据=1;//数字1,2是参数的位置顺序,并不是对参数赋值

  skillskill=2;//支持自定义的数据格式,非常灵活

  };

  //返回的对象

  messageHelloResponse{

  字符串结果=1;

  mapstring,int 32 map _ result=2;//支持地图数据格式,类似词典

  };

  消息技能{

  字符串名称=1;

  };3、用protoc和插件编译生成语言代码。

  python-mg RPC _ tools。protoco-I ./-python _ out=./- grpc_python_out=./hello.proto使用编译工具将样机文件转换成巴拉圭文件,直接在当前文件目录下运行上述代码。

  4、编写grpc服务器代码。

  #!/usr/bin/envpython

  #编码=utf8

  进口时间

  fromconcurrentimportfutures

  importgrpc

  来自grpc _ example import hello_pb2 _ grpc,hello _ Pb2

  _一天_秒=60*60*24

  class testservice(hello _ Pb2 _ grpc .GrpcServiceServicer):

  继承GrpcServiceServicer,实现你好方法

  def__init__(self):

  及格

  defhello(自身、请求、上下文):

  nbsp;具体实现hello的方法,并按照pb的返回对象构造HelloResponse返回

  :paramrequest:

  :paramcontext:

  :return:

  '''

  result=request.data+request.skill.name+"thisisgprctestservice"

  list_result={"12":1232}

  returnhello_pb2.HelloResponse(result=str(result),

  map_result=list_result)

  defrun():

  '''

  模拟服务启动

  :return:

  '''

  server=grpc.server(futures.ThreadPoolExecutor(max_workers=10))

  hello_pb2_grpc.add_GrpcServiceServicer_to_server(TestService(),server)

  server.add_insecure_port('[::]:50052')

  server.start()

  print("startservice...")

  try:

  whileTrue:

  time.sleep(_ONE_DAY_IN_SECONDS)

  exceptKeyboardInterrupt:

  server.stop(0)

  if__name__=='__main__':

  run()

5、编写gRPC客户端代码。

  

#!/usr/bin/envpython

6、调用测试。

  

首先启动运行服务器的代码,然后启动运行客户端的代码。

  

以上就是Python搭建gRPC服务的方法,希望对大家有所帮助。更多Python学习指路:python基础教程

  

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: