我使用谷歌的gRPC与服务器一起工作,但过了一段时间我注意到流在服务器上分配,只有当我关闭我的应用程序时才会关闭。
GatewayGrpc.GatewayBlockingStub stub = getGatewayBlockingStub();
Gw.GetRequest request = new Gw.GetRequest();
request.authToken = authToken;
request.requestId = requestId;
Gw.GetResponse response = stub.get(request);
如何释放此连接?
答案 0 :(得分:2)
如果通过"数百个流"你的意思是"数百个连接,"然后你可能没有关闭ManagedChannel
。 getGatewayBlockingStub()
可能在内部创建ManagedChannel
。您需要致电ManagedChannel.shutdown()
。
通常要重复使用频道。频道懒洋洋地初始化任何TCP连接,除非有新的RPC,否则不要重新连接。