1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Python怎么搭建gRPC服務(wù)

      這篇文章主要介紹Python怎么搭建gRPC服務(wù),文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

      專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)紅古免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

      1、安裝python所需的庫。

      pip install grpcio
      pip install grpcio-tools  
      pip install protobuf

      2、定義gRPC接口。

      syntax = "proto3";
      option cc_generic_services = true;
      //定義服務(wù)接口
      service GrpcService {
          rpc hello (HelloRequest) returns (HelloResponse) {}  //一個(gè)服務(wù)中可以定義多個(gè)接口,也就是多個(gè)函數(shù)功能
      }
      //請(qǐng)求的參數(shù)
      message HelloRequest {
          string data = 1;   //數(shù)字1,2是參數(shù)的位置順序,并不是對(duì)參數(shù)賦值
          Skill skill = 2;  //支持自定義的數(shù)據(jù)格式,非常靈活
      };
      //返回的對(duì)象
      message HelloResponse {
          string result = 1;
          map map_result = 2; //支持map數(shù)據(jù)格式,類似dict
      };
      message Skill {
          string name = 1;
      };

      3、用protoc和相應(yīng)的插件編譯生成相應(yīng)語言的代碼。

      python -m grpc_tools.protoc -I ./ --python_out=./ --grpc_python_out=. ./hello.proto

      使用編譯工具將proto文件轉(zhuǎn)換成py文件,直接在當(dāng)前文件目錄下運(yùn)行上述代碼。

      4、編寫grpc服務(wù)器代碼。

      #! /usr/bin/env python
      # coding=utf8
      import time
      from concurrent import futures
      import grpc
      from gRPC_example import hello_pb2_grpc, hello_pb2
      _ONE_DAY_IN_SECONDS = 60 * 60 * 24
      class TestService(hello_pb2_grpc.GrpcServiceServicer):
          '''
          繼承GrpcServiceServicer,實(shí)現(xiàn)hello方法
          '''
          def __init__(self):
              pass
          def hello(self, request, context):
              '''
              具體實(shí)現(xiàn)hello的方法,并按照pb的返回對(duì)象構(gòu)造HelloResponse返回
              :param request:
              :param context:
              :return:
              '''
              result = request.data + request.skill.name + " this is gprc test service"
              list_result = {"12": 1232}
              return hello_pb2.HelloResponse(result=str(result),
                                             map_result=list_result)
      def run():
          '''
          模擬服務(wù)啟動(dòng)
          :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("start service...")
          try:
              while True:
                  time.sleep(_ONE_DAY_IN_SECONDS)
          except KeyboardInterrupt:
              server.stop(0)
      if __name__ == '__main__':
          run()

      5、編寫gRPC客戶端代碼。

      #! /usr/bin/env python
      # coding=utf8
      import grpc
      from gRPC_example import #! /usr/bin/env python
      # coding=utf8
      import grpc
      from gRPC_example import hello_pb2_grpc, hello_pb2
      def run():
          '''
          模擬請(qǐng)求服務(wù)方法信息
          :return:
          '''
          conn=grpc.insecure_channel('localhost:50052')
          client = hello_pb2_grpc.GrpcServiceStub(channel=conn)
          skill = hello_pb2.Skill(name="engineer")
          request = hello_pb2.HelloRequest(data="xiao gang", skill=skill)
          respnse = client.hello(request)
          print("received:",respnse.result)
      if __name__ == '__main__':
          run()
      def run():
          '''
          模擬請(qǐng)求服務(wù)方法信息
          :return:
          '''
          conn=grpc.insecure_channel('localhost:50052')
          client = hello_pb2_grpc.GrpcServiceStub(channel=conn)
          skill = hello_pb2.Skill(name="engineer")
          request = hello_pb2.HelloRequest(data="xiao gang", skill=skill)
          response = client.hello(request)
          print("received:",response.result)
      if __name__ == '__main__':
          run()

      6、調(diào)用測試。

      首先啟動(dòng)運(yùn)行服務(wù)器的代碼,然后啟動(dòng)運(yùn)行客戶端的代碼。

      以上是“Python怎么搭建gRPC服務(wù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


      文章題目:Python怎么搭建gRPC服務(wù)
      網(wǎng)站URL:http://www.ef60e0e.cn/article/pojoho.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        绥芬河市| 谢通门县| 许昌县| 鲁山县| 鄂尔多斯市| 鄂州市| 黔江区| 张家口市| 康定县| 铜梁县| 海口市| 泾阳县| 海丰县| 玛多县| 南华县| 东安县| 竹北市| 富宁县| 无为县| 茂名市| 巴林右旗| 改则县| 静海县| 张家川| 高雄市| 大冶市| 姜堰市| 城步| 潼关县| 芷江| 柯坪县| 宣恩县| 梁河县| 昔阳县| 年辖:市辖区| 瑞安市| 龙口市| 寿阳县| 化德县| 哈尔滨市| 扶绥县|