婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 如何用Python搭建gRPC服務

如何用Python搭建gRPC服務

熱門標簽:外賣地址有什么地圖標注 上海正規的外呼系統最新報價 電銷機器人錄音要學習什么 如何地圖標注公司 煙臺電話外呼營銷系統 企業彩鈴地圖標注 長春極信防封電銷卡批發 銀川電話機器人電話 預覽式外呼系統

一、概述

一個gRPC服務的大體結構圖為:

圖一表明,grpc的服務是跨語言的,但需要遵循相同的協議(proto)。相比于REST服務,gPRC 的一個很明顯的優勢是它使用了二進制編碼,所以它比 JSON/HTTP 更快,且有清晰的接口規范以及支持流式傳輸,但它的實現相比rest服務要稍微要復雜一些,下面簡單介紹搭建gRPC服務的步驟。

二、安裝python需要的庫

pip install grpcio

pip install grpcio-tools  

pip install protobuf

三、定義gRPC的接口

創建 gRPC 服務的第一步是在.proto 文件中定義好接口,proto是一個協議文件,客戶端和服務器的通信接口正是通過proto文件協定的,可以根據不同語言生成對應語言的代碼文件。這個協議文件主要就是定義好服務(service)接口,以及請求參數和相應結果的數據結構,下面是一個簡單的例子。

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

四、使用 protoc 和相應的插件編譯生成對應語言的代碼

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

利用編譯工具把proto文件轉化成py文件,直接在當前文件目錄下運行上述代碼即可。

1.-I 指定proto所在目錄

2.-m 指定通過protoc生成py文件

3.--python_out指定生成py文件的輸出路徑

4.hello.proto 輸入的proto文件

執行上述命令后,生成hello_pb2.py 和hello_pb2_grpc.py這兩個文件。

五、編寫grpc的服務端代碼

#! /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,實現hello方法
    '''
    def __init__(self):
        pass
​
    def hello(self, request, context):
        '''
        具體實現hello的方法,并按照pb的返回對象構造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():
    '''
    模擬服務啟動
    :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()

在服務端側,需要實現hello的方法來滿足proto文件中GrpcService的接口需求,hello方法的傳入參數,是在proto文件中定義的HelloRequest,context是保留字段,不用管,返回參數則是在proto中定義的HelloResponse,服務啟動的代碼是標準的,可以根據需求修改提供服務的ip地址以及端口號。

六、編寫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():
    '''
    模擬請求服務方法信息
    :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():
    '''
    模擬請求服務方法信息
    :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()

客戶端側代碼的實現比較簡單,首先定義好訪問ip和端口號,然后定義好HelloRequest數據結構,遠程調用hello即可。需要強調的是,客戶端和服務端一定要import相同proto文件編譯生成的hello_pb2_grpc, hello_pb2模塊,即使服務端和客戶端使用的語言不一樣,這也是grpc接口規范一致的體現。

七、調用測試

先啟動運行服務端的代碼,再啟動運行客戶端的代碼即可。

八、gRPC的使用總結

  • 定義好接口文檔
  • 工具生成服務端/客戶端代碼
  • 服務端補充業務代碼
  • 客戶端建立 gRPC 連接后,使用自動生成的代碼調用函數
  • 編譯、運行

以上就是如何用Python搭建gRPC服務的詳細內容,更多關于Python搭建gRPC服務的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • Python grpc超時機制代碼示例
  • python golang中grpc 使用示例代碼詳解
  • python配置grpc環境
  • Python使用gRPC傳輸協議教程
  • python使用rpc框架gRPC的方法
  • 在Python中使用gRPC的方法示例

標簽:上饒 宜昌 潮州 珠海 盤錦 佳木斯 西寧 湖北

巨人網絡通訊聲明:本文標題《如何用Python搭建gRPC服務》,本文關鍵詞  如,何用,Python,搭建,gRPC,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《如何用Python搭建gRPC服務》相關的同類信息!
  • 本頁收集關于如何用Python搭建gRPC服務的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美成人欧美edvon| 免费成人在线观看| 亚洲成人手机在线| 成人蜜臀av电影| 日韩一区二区三区四区| 一区二区三区免费网站| 久久久久综合网| 香蕉成人伊视频在线观看| 欧美一区二区三区在线观看 | 国产激情视频一区二区三区欧美| 久久精品国产久精国产| 欧美久久免费观看| 日韩视频一区二区三区在线播放| 蜜桃av一区二区| 久久精品国产网站| 美腿丝袜亚洲色图| 欧美网站大全在线观看| 亚洲蜜桃精久久久久久久| 欧美在线高清视频| 欧美激情综合在线| 国产精品123区| 国产欧美视频一区二区三区| 国产成人日日夜夜| 日韩一级高清毛片| 日韩欧美高清在线| 日本欧美大码aⅴ在线播放| 欧美一级夜夜爽| 午夜婷婷国产麻豆精品| 欧美老肥妇做.爰bbww视频| 国精品**一区二区三区在线蜜桃 | 欧美一区二区二区| jlzzjlzz亚洲女人18| 日本在线不卡视频一二三区| 国产无人区一区二区三区| 亚洲人成在线播放网站岛国 | 丝袜诱惑制服诱惑色一区在线观看| 久久亚洲综合色一区二区三区| 国产亚洲人成网站| 日精品一区二区| 欧美日韩国产精品成人| 国产精品灌醉下药二区| 91首页免费视频| 欧美高清在线精品一区| 欧美一区二区视频在线观看| 日本aⅴ免费视频一区二区三区 | av在线免费不卡| 一区在线播放视频| 欧美亚洲国产bt| 亚洲国产一区二区三区 | 26uuu亚洲| 欧美精品一区二区在线观看| 成人午夜av影视| 午夜a成v人精品| 亚洲一区视频在线| 亚洲乱码国产乱码精品精小说| 国产欧美精品一区aⅴ影院| 粉嫩av一区二区三区在线播放| 日韩精品三区四区| 亚洲成人自拍一区| 亚洲综合清纯丝袜自拍| 亚洲国产经典视频| 欧美日本一道本在线视频| 色婷婷亚洲综合| 91丨porny丨最新| 成人网男人的天堂| eeuss影院一区二区三区| 国产99久久久国产精品潘金| 精品综合久久久久久8888| 毛片不卡一区二区| 美腿丝袜亚洲综合| 日韩电影在线一区二区| 午夜精品免费在线观看| 日韩电影一区二区三区四区| 日本欧美韩国一区三区| 美洲天堂一区二卡三卡四卡视频 | 欧美不卡123| 欧美一区二区三区在线电影| 欧美日本一区二区三区四区| 欧美日韩国产123区| 欧美精品一级二级| 日韩欧美另类在线| 久久久噜噜噜久噜久久综合| 国产精品美女久久久久aⅴ国产馆| 久久精品一级爱片| 亚洲欧洲成人自拍| 亚洲观看高清完整版在线观看| 亚洲成av人片一区二区梦乃 | 国产91丝袜在线播放九色| 精品一区二区三区在线观看| 蜜桃视频一区二区三区在线观看| 国产精品乱人伦中文| 亚洲男人的天堂一区二区| 亚洲福利视频一区| 青草av.久久免费一区| 日韩一区二区不卡| 精品日韩av一区二区| 久久久久国产免费免费| 成人av在线观| 懂色av一区二区夜夜嗨| 成人综合婷婷国产精品久久蜜臀| 国产精品一区二区男女羞羞无遮挡| 国产69精品久久99不卡| 欧美在线不卡视频| 久久九九久精品国产免费直播| 亚洲视频在线一区二区| 免费成人av在线播放| 成熟亚洲日本毛茸茸凸凹| 欧美性受极品xxxx喷水| 国产精品视频在线看| 蜜桃av一区二区在线观看| 色综合中文字幕| 国产偷国产偷精品高清尤物| 亚洲精品日韩综合观看成人91| 精品一区二区三区在线观看国产 | 日本不卡高清视频| 97久久超碰精品国产| 精品成人佐山爱一区二区| 一级日本不卡的影视| 一区二区三区在线看| 国产一区二区三区免费在线观看 | 久久精品水蜜桃av综合天堂| 亚洲国产精品人人做人人爽| 成人午夜免费电影| 久久婷婷国产综合国色天香 | 97se狠狠狠综合亚洲狠狠| 日韩激情视频在线观看| 欧美中文字幕一区二区三区 | 综合欧美亚洲日本| 国产成人在线观看免费网站| 欧美日韩精品一区二区三区蜜桃| 一区精品在线播放| 成人在线综合网站| 国产精品午夜在线| 国产福利一区二区| 欧美人与z0zoxxxx视频| 亚洲你懂的在线视频| 成人性视频网站| 国产三级一区二区三区| 亚洲一级不卡视频| 日本精品裸体写真集在线观看| 国产精品毛片久久久久久| 久久国产剧场电影| 91久久精品国产91性色tv| 欧美性三三影院| 欧美激情中文字幕一区二区| 午夜精品久久久久久久久久| 欧美一区二区在线观看| 欧美理论在线播放| 91精品在线一区二区| 极品少妇xxxx精品少妇偷拍| 欧美丝袜丝nylons| 亚洲日本va午夜在线影院| 国产999精品久久久久久| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美私人免费视频| 日韩精品一区第一页| 日韩美女天天操| 国产一区二区三区四| 欧美日韩不卡一区| 经典三级视频一区| 国产精品免费久久久久| 不卡的电影网站| 亚洲国产精品尤物yw在线观看| 欧美一区二区日韩| 国产精品18久久久久久久久| 最好看的中文字幕久久| 欧美卡1卡2卡| 韩国三级在线一区| 中文字幕一区在线观看| 99精品黄色片免费大全| 午夜av区久久| 久久久久久夜精品精品免费| 99久久精品情趣| 日韩福利电影在线观看| 国产区在线观看成人精品| 精品视频在线免费看| 日本亚洲欧美天堂免费| 国产亚洲1区2区3区| 欧美在线视频你懂得| 国产一区二区在线影院| 亚洲欧美日韩久久| 欧美精品一区二区三区一线天视频| 99久久综合精品| 日本视频一区二区三区| 亚洲麻豆国产自偷在线| 精品国产污网站| 欧美日韩另类一区| 国产很黄免费观看久久| 亚洲国产日日夜夜| 中文字幕一区二区三区精华液| 欧美一卡二卡三卡| 在线观看视频一区二区| 国产91精品一区二区| 天天综合网 天天综合色| 中文字幕亚洲综合久久菠萝蜜| 欧美一级黄色录像| 欧美日韩一区二区三区高清 | 国产日韩欧美在线一区| 欧美精品免费视频| 日韩精品一二三|