對(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依賴庫(kù)
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è)參考,也希望大家多多支持腳本之家。
- 通過(guò) Redis 實(shí)現(xiàn) RPC 遠(yuǎn)程方法調(diào)用(支持多種編程語(yǔ)言)
- Python中實(shí)現(xiàn)遠(yuǎn)程調(diào)用(RPC、RMI)簡(jiǎn)單例子
- Java利用Sping框架編寫RPC遠(yuǎn)程過(guò)程調(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)文章
關(guān)于spring的@Bean注解放入引用Bean中初始化失敗分析
這篇文章主要介紹了關(guān)于spring的@Bean注解放入引用Bean中初始化失敗分析,Spring的@Bean注解用于告訴方法,產(chǎn)生一個(gè)Bean對(duì)象,然后這個(gè)Bean對(duì)象交給Spring管理,產(chǎn)生這個(gè)Bean對(duì)象的方法Spring只會(huì)調(diào)用一次,需要的朋友可以參考下2023-07-07
Python中sorted()函數(shù)之排序的利器詳解
sorted()函數(shù)是Python中的內(nèi)置函數(shù),用于對(duì)可迭代對(duì)象進(jìn)行排序,下面這篇文章主要給大家介紹了關(guān)于Python中sorted()函數(shù)之排序的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
Python實(shí)現(xiàn)扣除個(gè)人稅后的工資計(jì)算器示例
這篇文章主要介紹了Python實(shí)現(xiàn)扣除個(gè)人稅后的工資計(jì)算器,涉及Python流程控制與數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2018-03-03
python rolling regression. 使用 Python 實(shí)現(xiàn)滾動(dòng)回歸操作
這篇文章主要介紹了python rolling regression. 使用 Python 實(shí)現(xiàn)滾動(dòng)回歸操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
通過(guò)celery異步處理一個(gè)查詢?nèi)蝿?wù)的完整代碼
今天小編就為大家分享一篇通過(guò)celery異步處理一個(gè)查詢?nèi)蝿?wù)的完整代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
Python設(shè)計(jì)模式之迭代器模式原理與用法實(shí)例分析
這篇文章主要介紹了Python設(shè)計(jì)模式之迭代器模式原理與用法,結(jié)合具體實(shí)例形式分析了迭代器模式的概念、原理、定義及使用方法,代碼注釋說(shuō)明簡(jiǎn)單易懂,需要的朋友可以參考下2019-01-01

