【发布时间】:2021-09-21 18:55:45
【问题描述】:
我已经实现了一个 gRPC 服务器来将来自客户端进程的任务委托给这个服务器。
考虑到多个客户端,我想知道 Servicer-Class 是暂时的还是永久的。
我导出服务者如下:
class MyServicer(my_pb2_grpc.MyServicer):
def __init__(self):
self.attrA = 0
self.attrB = 0
self.attrC = 0
def rpcMethodA(self, request, context):
self.attrA += 1
def rpcMethodB(self, request, context):
...
服务器启动方式
server = grpc.server(futures.ThreadPoolExecutor())
my_pb2_grpc.add_MyServicer_to_server(MyServicer(), server)
server.add_insecure_port('[::]:50000')
server.start()
如图所示,MyServicer 具有每个实例的属性。那个对象被维护了吗? attrA 是否会为由一个特定客户端调用的服务程序类的一个实例增加?
每个客户端会绑定多个实例吗?
该实例将存在多长时间?每次新调用时都会重新创建它吗?
【问题讨论】:
标签: networking protocol-buffers grpc rpc grpc-python