networking - gRPC 会话:生命周期和持久性
问题描述
我已经实现了一个 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
对于由一个特定客户端调用的服务程序类的一个实例是否会增加?每个客户端会绑定多个实例吗?该实例将存在多长时间?它是否在每次新呼叫时重新创建?
解决方案
通过测试行为,gRPC Servicer 暴露了这种行为:
会话:没有会话管理。
服务者生命周期:服务者实例持续到服务器终止。
派生服务用于连接到服务器的每个客户端。attrA
只要服务器运行,该属性就会递增。
推荐阅读
- javascript - 如何从下拉菜单中读取值并使用 javascript 带入 IF 语句?
- python - Pandas 的 dataframe.dropna() 中的“na”是什么意思?
- python - 通过python将excel导入SQL
- python - 使用python将嵌套的json拆分为两个/多个文件
- python - python3 mariadb ssl:请求的数据不可用
- python - cuDNN 错误 无法获得卷积算法。这可能是因为 cuDNN 未能初始化
- php - Array_unique 和 XLS 导出
- google-maps - Android Studio 模拟器首先转移到 Google 地图中的 Googleplex(山景)位置
- asp.net-core - AuthorizeAttribute:如何尝试所有可用的身份验证模式?
- python - 使用 keras 中的专有类别一次对多个图像进行分类