python中Protobuf创建服务端代码

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

1、创建和运行 Greeter 服务可以分为两个部分:

执行服务定义的生成的服务接口:完成实际服务“工作”的功能。

在gRPC服务器上运行,监听来自客户端的请求并传送服务响应。

2、在当前目录,打开文件 greeter_server.py,实现一个新的函数:

fromconcurrentimportfutures
importtime

importgrpc

importhello_pb2
importhello_pb2_grpc

_ONE_DAY_IN_SECONDS=60*60*24


classGreeter(hello_pb2_grpc.GreeterServicer):
#工作函数
defSayHello(self,request,context):
returnhello_pb2.HelloReply(message='Hello,%s!'%request.name)


defserve():
#gRPC服务器
server=grpc.server(futures.ThreadPoolExecutor(max_workers=10))
hello_pb2_grpc.add_GreeterServicer_to_server(Greeter(),server)
server.add_insecure_port('[::]:50051')
server.start()#start()不会阻塞,如果运行时你的代码没有其它的事情可做,你可能需要循环等待。
try:
whileTrue:
time.sleep(_ONE_DAY_IN_SECONDS)
exceptKeyboardInterrupt:
server.stop(0)

if__name__=='__main__':
serve()