首页 > 解决方案 > Python:缓存 grpc 连接的最佳方法?

问题描述

我正在网络层上使用 GRPC 构建 DHT。

我已经确定瓶颈来自建立连接:


    async def sendFindNode(self, to_address, target_id, from_id, from_address):
        try:
            async with grpc.aio.insecure_channel(to_address) as channel:
                stub = helloworld_pb2_grpc.GreeterStub(channel)
                results = []
                async for response in stub.FindNode(
                        helloworld_pb2.FindNodeRequest(target_id=str(target_id), from_id=str(from_id),
                                                       from_address=str(from_address)), timeout=0.5):
                    results.append(response)
                return results
        except grpc.aio.AioRpcError as e:
            return None

我的问题是:缓存 grpc 连接的最佳方法是什么?我应该手动映射node_address -> insecure channels吗?或者 GRPC 库中是否有内置方法来启用缓存?

标签: pythongrpc

解决方案


推荐阅读