use*_*803 4 python sockets connection grpc grpc-python
grpc 客户端何时创建和关闭连接?
我以以下方式开始代码:
channel = grpc.insecure_channel('localhost:8888')
stub = myservice_pb2_grpc.MyServiceStub(channel)
Run Code Online (Sandbox Code Playgroud)
声明 a 是否会channel在进程的整个生命周期内创建一个套接字?
因为即使我提供了无效的地址,insecure_channel()在发出第一个请求之前我也看不到任何错误。
或者,套接字仅在发出请求时创建并随后关闭?
在 gRPC Python 中,通道对象对应于一个或多个 TCP 连接,具体取决于您的负载平衡策略。如果没有选择负载平衡策略(这似乎是绝大多数使用情况),那么是的,一个通道对应于单个 TCP 连接。
只要通道对象本身打开,通道表示的连接就会保持活动状态。因此,建议您在客户端进程的多个 RPC 调用中重用通道。还建议您在不再需要通道后将其关闭。
有两种方法可以实现此目的。第一种是手动调用该close方法:
channel = grpc.insecure_channel('localhost:8888')
# send some RPCs
channel.close()
Run Code Online (Sandbox Code Playgroud)
另一种是使用上下文管理器:
with grpc.insecure_channel('localhost:8888') as channel:
# send some RPCs
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7100 次 |
| 最近记录: |