對(duì)python調(diào)用RPC接口的實(shí)例詳解
要調(diào)用RPC接口,python提供了一個(gè)框架grpc,這是google開源的
rpc相關(guān)文檔:
https://grpc.io/docs/tutorials/basic/python.html
需要安裝的python包如下:
1.grpc安裝
pip install grpcio
2.grpc的python protobuf相關(guān)的編譯工具
pip install grpcio-tools
3.protobuf相關(guān)python依賴庫
pip install protobuf
4.一些常見原型的生成python類的集合:
pip install googleapis-common-protos
編譯protobuf文件:使用以下命令生成Python代碼:
python3 -m grpc_tools.protoc -I<目標(biāo)路徑目錄> --python_out=. --grpc_python_out=<目標(biāo)文件所在目錄路徑> <目標(biāo)文件data.proto>
python3 -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. data.proto
注意:protobuf文件,為定義服務(wù)接口代碼文件,這里是data.proto
會(huì)生成:data_pb2.py 與 data_pb2_grpc.py
data_pb2.py是服務(wù)接口映射
data_pb2_grpc.py方法映射
protobuf內(nèi)容示例:
syntax = "proto3"; package grpcDemo; message HelloRequest { string name = 1; } message HelloReply { string message = 1; } service gRPC { rpc SayHello (HelloRequest) returns (HelloReply) {} }
接口調(diào)用內(nèi)容示例:
# -*- coding: utf-8 -*- import grpc import data_pb2,data_pb2_grpc _HOST = 'localhost' _PORT = '8080' def run(): conn = grpc.insecure_channel(_HOST + ':' + _PORT) client = data_pb2_grpc.gRPCStub(channel=conn) response = client.SayHello(data_pb2.HelloRequest(name='hello,world!')) print("received: " + response.text) if __name__ == '__main__': run()
以上這篇對(duì)python調(diào)用RPC接口的實(shí)例詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 通過 Redis 實(shí)現(xiàn) RPC 遠(yuǎn)程方法調(diào)用(支持多種編程語言)
- Python中實(shí)現(xiàn)遠(yuǎn)程調(diào)用(RPC、RMI)簡(jiǎn)單例子
- Java利用Sping框架編寫RPC遠(yuǎn)程過程調(diào)用服務(wù)的教程
- RPC、RMI、SOAP的區(qū)別詳解
- php實(shí)現(xiàn)的一個(gè)簡(jiǎn)單json rpc框架實(shí)例
- python使用rpc框架gRPC的方法
- Java實(shí)現(xiàn)簡(jiǎn)單的RPC框架的示例代碼
- 關(guān)于rpc長(zhǎng)連接與短連接的思考記錄
相關(guān)文章
玩轉(zhuǎn)Python發(fā)短信的實(shí)現(xiàn)
用Python實(shí)現(xiàn)發(fā)短信功能,當(dāng)監(jiān)控到問題出現(xiàn)時(shí),短信報(bào)警,使問題能得到及時(shí)的處理。當(dāng)然,我相信,用Python發(fā)短信應(yīng)用場(chǎng)景不止此一處,下面我們開始Python發(fā)短信的實(shí)現(xiàn),感興趣的朋友參考下吧2022-01-01Python實(shí)例練習(xí)水仙花數(shù)問題講解
這篇文章介紹了Python找水仙花數(shù)從分析到實(shí)現(xiàn)的過程,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05基于深度學(xué)習(xí)和OpenCV實(shí)現(xiàn)目標(biāo)檢測(cè)
這篇文章主要介紹了通過使用OpenCV進(jìn)行基于深度學(xué)習(xí)的對(duì)象檢測(cè)以及使用OpenCV檢測(cè)視頻,文中的示例代碼講解詳細(xì),需要的可以參考一下2021-12-12django+tornado實(shí)現(xiàn)實(shí)時(shí)查看遠(yuǎn)程日志的方法
今天小編就為大家分享一篇django+tornado實(shí)現(xiàn)實(shí)時(shí)查看遠(yuǎn)程日志的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python簡(jiǎn)單實(shí)現(xiàn)gif動(dòng)圖倒放示例
這篇文章主要為大家介紹了Python簡(jiǎn)單實(shí)現(xiàn)gif動(dòng)圖倒放的示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05