GRPC服务,grpc部署
1、安装python所需的库。
pipinstallgrpcio
pipinstallgrpcio工具
2、定义gRPC接口。
语法= proto3
option cc _ generic _ services=true;
//定义服务接口
serviceGrpcService{
普切罗(HelloRequest)返回(HelloResponse){}//一个服务中可以定义多个接口,也就是多个函数功能
}
//请求的参数
messageHelloRequest{
字符串数据=1;//数字1,2是参数的位置顺序,并不是对参数赋值
skillskill=2;//支持自定义的数据格式,非常灵活
};
//返回的对象
messageHelloResponse{
字符串结果=1;
mapstring,int 32 map _ result=2;//支持地图数据格式,类似词典
};
消息技能{
字符串名称=1;
};3、用protoc和插件编译生成语言代码。
python-mg RPC _ tools。protoco-I ./-python _ out=./- grpc_python_out=./hello.proto使用编译工具将样机文件转换成巴拉圭文件,直接在当前文件目录下运行上述代码。
4、编写grpc服务器代码。
#!/usr/bin/envpython
#编码=utf8
进口时间
fromconcurrentimportfutures
importgrpc
来自grpc _ example import hello_pb2 _ grpc,hello _ Pb2
_一天_秒=60*60*24
class testservice(hello _ Pb2 _ grpc .GrpcServiceServicer):
继承GrpcServiceServicer,实现你好方法
def__init__(self):
及格
defhello(自身、请求、上下文):
nbsp;具体实现hello的方法,并按照pb的返回对象构造HelloResponse返回
:paramrequest:
:paramcontext:
:return:
'''
result=request.data+request.skill.name+"thisisgprctestservice"
list_result={"12":1232}
returnhello_pb2.HelloResponse(result=str(result),
map_result=list_result)
defrun():
'''
模拟服务启动
: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("startservice...")
try:
whileTrue:
time.sleep(_ONE_DAY_IN_SECONDS)
exceptKeyboardInterrupt:
server.stop(0)
if__name__=='__main__':
run()
5、编写gRPC客户端代码。
#!/usr/bin/envpython
6、调用测试。
首先启动运行服务器的代码,然后启动运行客户端的代码。
以上就是Python搭建gRPC服务的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。