日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

用Python編寫簡單的gRPC服務的詳細過程

瀏覽:2日期:2022-06-15 14:18:47

gRPC 是可以在任何環境中運行的現代開源高性能 RPC 框架。它可以通過可插拔的支持來有效地連接數據中心內和跨數據中心的服務,以實現負載平衡,跟蹤,運行狀況檢查和身份驗證。它也適用于分布式計算的最后一英里,以將設備,移動應用程序和瀏覽器連接到后端服務。

用Python編寫簡單的gRPC服務

grpc官網python參考:https://www.grpc.io/docs/languages/python/quickstart/http://grpc.github.io/grpc/python/grpc.html

Python 3.5 or higher pip version 9.0.1 or higher

安裝gRPC相關的庫grpcio-tools主要用根據我們的protocol buffer定義來生成Python代碼,官方解釋是Protobuf code generator for gRPC。

#apt install python3-pippip install grpciopip install protobufpip install grpcio_tools編寫proto文件

proto是一個協議文件,客戶端和服務器的通信接口正是通過proto文件協定的,可以根據不同語言生成對應語言的代碼文件。

heartbeat.proto文件:

syntax = 'proto3';message HeartbeatRequest{string Host = 1;int32 Mem = 2;int32 Disk = 3;int32 Cpu = 4;int64 Timestamp = 5;int64 Seq = 6;}message HeartbeatResponse{int32 ErrCode = 1;string ErrMsg = 2;}

heartbeat_service.proto

syntax = 'proto3';import 'heartbeat.proto';// HeartBeatServiceservice HeartBeatService{ rpc HeartBeat(HeartbeatRequest) returns(HeartbeatResponse){}}

核心 就是一個 用于生成需要用到數據類型的文件;一個就是用于生成相關調用方法的類。 一個定義數據類型,一個用于定義方法。

通過proto生成.py文件

proto文件需要通過protoc生成對應的.py文件。protoc的下載地址 。下載解壓之后,將解壓目錄添加到path的環境變量中。

pip install grpcioinstall grpcio-tools#pip install --upgrade protobuf

注意:【下面命令是在proto文件所在的目錄執行的,-I 用來指定proto的目錄是 . 】

python -m grpc_tools.protoc -I=. --python_out=.. heartbeat.protopython -m grpc_tools.protoc -I=. --grpc_python_out=.. heartbeat_service.proto -I 指定proto所在目錄 -m 指定通過protoc生成py文件 ?python_out生成py文件的輸出路徑 heartbeat.proto、heartbeat_service.proto為 輸入的proto文件

用Python編寫簡單的gRPC服務的詳細過程

生成的文件名中 xxx_pb2.py 就是我們剛才創建數據結構文件,里面有定義函數參數和返回數據結構; xxx_pb2_grpc.py 就是我們定義的函數,定義了我們客服端rpc將來要調用方法。編譯客戶端和服務端代碼

服務端

#!/usr/bin/env python# coding=utf-8import sysfrom concurrent import futuresimport timeimport grpcfrom google.protobuf.json_format import MessageToJsonimport heartbeat_service_pb2_grpcimport heartbeat_pb2from lib.core.log import LOGGERclass HeartBeatSrv(heartbeat_service_pb2_grpc.HeartBeatServiceServicer): def HeartBeat(self, msg, context):try: # LOGGER.info(MessageToJson(msg, preserving_proto_field_name=True)) body = MessageToJson(msg, preserving_proto_field_name=True) LOGGER.info('Get Heartbeat Request: %s', body) response = heartbeat_pb2.HeartbeatResponse() response.ErrCode = 0000 response.ErrMsg = 'success' return responseexcept Exception as e: print('exception in heartbeat') LOGGER.error('RPC Service exception: %s', e) response = heartbeat_pb2.HeartbeatResponse() response.ErrCode = 500 response.ErrMsg = 'rpc error: %s' % e return responsedef server(host, rpc_port): # 這里通過thread pool來并發處理server的任務 # 定義服務器并設置最大連接數,concurrent.futures是一個并發庫,類似于線程池的概念 grpc_server = grpc.server(futures.ThreadPoolExecutor(max_workers=100)) # 不使用SSL grpc_server.add_insecure_port(’[::]’ + ’:’ + str(rpc_port)) # This method is only safe to call before the server is started. # 綁定處理器HeartBeatSrv(自己實現了處理函數) heartbeat_service_pb2_grpc.add_HeartBeatServiceServicer_to_server(HeartBeatSrv(), grpc_server) # 該方法只能調用一次, start() 不會阻塞 # 啟動服務器 grpc_server.start() LOGGER.info('server start...') while 1:time.sleep(10) #grpc_server.wait_for_termination()def main(): try:LOGGER.info('begin start server')rpc_port = 8090host = '::'server(host, rpc_port) except Exception as e:LOGGER.error('server start error: %s', e)time.sleep(5)if __name__ == ’__main__’: LOGGER.info(sys.path) main()

客戶端

from time import sleepimport grpcimport heartbeat_pb2import heartbeat_service_pb2_grpcfrom lib.core.log import LOGGERdef run(seq): option = [(’grpc.keepalive_timeout_ms’, 10000)] # with grpc.insecure_channel(target=’127.0.0.1:8090’, options=option) as channel:# 客戶端實例stub = heartbeat_service_pb2_grpc.HeartBeatServiceStub(channel)# stub調用服務端方法response = stub.HeartBeat(heartbeat_pb2.HeartbeatRequest(Host=’hello grpc’, Seq=seq), timeout=10)LOGGER.info('response ErrCode:%s', response.ErrCode)if __name__ == ’__main__’: for i in range(1, 10000):LOGGER.info('i: %s', i)sleep(3)run(i)參考

使用Python實現gRPC通信參考URL: https://zhuanlan.zhihu.com/p/363810793python grpc搭構服務https://www.jianshu.com/p/10d9ca034567python grpc 服務端和客戶端調用demo參考URL: https://blog.csdn.net/qq_42363032/article/details/115282405

到此這篇關于用Python編寫簡單的gRPC服務的文章就介紹到這了,更多相關Python gRPC服務內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美一区在线观看视频| 亚洲国产一区二区三区在线播放| 98精品视频| 美女精品视频在线| 色乱码一区二区三区网站| 精品国产成人| 久久理论电影| 日日夜夜免费精品视频| 国产日韩三级| 日韩久久精品网| 欧美精品一区二区三区精品| 中文字幕中文字幕精品| 欧美极品一区二区三区| 久久国产电影| 日韩高清不卡在线| 日韩欧美一区二区三区在线视频 | 精品久久在线| 欧美+日本+国产+在线a∨观看| 国产精品日韩久久久| 国产视频一区二| 欧美日中文字幕| 日韩精品高清不卡| 人人香蕉久久| 综合五月婷婷| 欧美gv在线| 国产日韩1区| 久久国产亚洲精品| 精品国产美女a久久9999| 亚洲高清久久| 国产精品亚洲产品| 在线视频亚洲| 免费视频一区二区三区在线观看| 久久九九电影| 久久精品亚洲一区二区| 亚洲1区在线观看| 久久久久久久久久久9不雅视频| 日韩av成人高清| 久久xxxx| 欧美中文一区二区| 国产精品久久久久久久久久妞妞 | 国产精品久久久久久久久久妞妞 | 国产伦精品一区二区三区千人斩| 国内亚洲精品| 国产91欧美| 国产美女精品视频免费播放软件| 亚洲免费播放| 久久精品免费一区二区三区| 国产精品nxnn| 国产情侣一区| 国产亚洲精aa在线看| 视频一区日韩精品| 色狠狠一区二区三区| 亚洲精品欧洲| 日韩精品一二区| 欧美日韩视频一区二区三区| 日韩一区电影| 久久天堂精品| 激情久久婷婷| 国产一区视频在线观看免费| 日韩av免费| 免费成人网www| 久久国产精品99国产| 在线日韩成人| 91成人精品在线| 麻豆国产一区| 在线看片国产福利你懂的| 樱桃视频成人在线观看| 日韩电影免费网址| 日韩伦理一区| 欧美一级专区| 久久精品xxxxx| 国产66精品| 亚洲一级特黄| 日韩欧美久久| 国产精品99一区二区三区| 精品捆绑调教一区二区三区| 亚洲大全视频| 日韩精品视频网站| 国产成人久久| 国产精品丝袜xxxxxxx| 欧美在线不卡| 日韩中文首页| 日韩欧美四区| 亚洲一级少妇| 美女91精品| 精品国产一级| 蜜臀久久久久久久| 国产一区二区三区视频在线| 欧美女激情福利| 久久av超碰| 蜜桃av一区| 在线一区视频观看| 国产精品伊人| 日韩视频精品在线观看| 久久不卡国产精品一区二区| 亚洲激情精品| 麻豆精品蜜桃视频网站| 日韩一级不卡| zzzwww在线看片免费| 亚洲欧洲另类| 日韩中文欧美| 精品久久久久中文字幕小说| 免费看日韩精品| 日韩另类视频| 精品国产成人| 欧美成人精品午夜一区二区| 99视频在线精品国自产拍免费观看| 美日韩一区二区三区| 深夜日韩欧美| 美美哒免费高清在线观看视频一区二区| 激情视频网站在线播放色 | 亚洲少妇自拍| 超级白嫩亚洲国产第一| 国产日韩高清一区二区三区在线 | 91精品美女| 蜜臀久久99精品久久久画质超高清 | 亚洲一区黄色| 好看不卡的中文字幕| 久久婷婷亚洲| 久久视频国产| 欧美日韩视频免费观看| 欧美精品导航| 精品免费在线| 日韩理论视频| 欧美~级网站不卡| 一区在线视频观看| 日韩专区欧美专区| 日韩欧乱色一区二区三区在线| 亚洲精品系列| 国产精品中文字幕亚洲欧美 | 日韩精品免费视频一区二区三区 | 韩国精品主播一区二区在线观看 | 一区在线视频观看| 久久电影一区| 日韩精品中文字幕吗一区二区 | 欧美日韩国产一区精品一区| 一本色道久久精品| 日本免费在线视频不卡一不卡二| 蜜乳av另类精品一区二区| 中文字幕日韩亚洲| 麻豆精品少妇| 精品捆绑调教一区二区三区| 蜜桃tv一区二区三区| 亚洲制服一区| 麻豆视频久久| 亚洲国产不卡| 国产精品久久久亚洲一区| 亚洲黄色中文字幕| 亚洲一区二区三区免费在线观看| 亚洲精品日韩久久| 精品国产中文字幕第一页| 欧美99久久| 国产精品网站在线看| 桃色一区二区| 日韩精选在线| 欧美性感美女一区二区| 欧美亚洲一级| 亚洲激情中文在线| 久久精品一区二区国产| 亚洲精品网址| 精品中文在线| 亚洲区欧美区| 蜜臀久久99精品久久一区二区| 国产欧美日韩视频在线| 伊人久久亚洲美女图片| 久久婷婷国产| 日本欧美一区二区| 欧美1级日本1级| 欧美交a欧美精品喷水| 视频一区视频二区在线观看| 黄色在线网站噜噜噜| 欧美久久香蕉| 亚洲精品人人| 久久先锋影音| 国产精品丝袜xxxxxxx| 999国产精品视频| sm捆绑调教国产免费网站在线观看 | 一区二区精品伦理...| 国产欧美日韩一区二区三区四区 | 综合国产在线| 久久99国产精品视频| 婷婷五月色综合香五月| 99在线精品免费视频九九视| 日韩成人高清| 最近高清中文在线字幕在线观看1| 国产精品毛片久久久| 国产一精品一av一免费爽爽| 男人的天堂亚洲一区| 夜夜精品视频| 日本欧美在线看| 红桃视频国产一区| 亚洲黄页一区| 综合国产在线| 在线观看亚洲精品福利片| 婷婷丁香综合| 一区二区国产在线观看| 亚洲永久精品唐人导航网址| 日韩中文字幕亚洲一区二区va在线| 影音国产精品| 日韩制服丝袜av|