java grpc连接池_我是否需要为多线程Java GRPC(1.1.2)客户端池化ManagedChannel实例?

TL; DR

grpc-java的ManagedChannel是否具有隐式连接池,或者ManagedChannel实例的池是否是用户的责任?

所以,我正在使用带有protoc 3.2.0的java grpc 1.1.2.在我看来,grpc为客户端提供的连接池没有隐含的支持(截至目前).但是,似乎在grpc中抽象连接,即ManagedChannel对象确实可以使用多个TCP连接.那是对的吗?如果是这样,ManagedChannel是否带有连接池?如果是这种情况,我可能不必担心连接池,因为该通道是线程安全的,我只能在我的客户端使用一个ManagedChannel实例.但是,如果需要,我可能确实必须汇集这些通道对象以获得更大的吞吐量.是否有这样的实现(通道池)在grpc本身为我做这个?

解决方法:

既然您说要集合以获得更高的吞吐量,我假设您要为通道中的一个地址创建和池化多个连接.它不受支持,因为通道impl用于每个地址只创建一个连接.随着LBv2即将取代旧版本,现在可以使用自定义LoadBalancer,您可以根据需要使用create多个子通道进行连接.

关于如何编写自己的LoadBalancer,可以参考库存pick-first和round-robin LoadBalancers.

标签:java,grpc,grpc-java

来源: https://codeday.me/bug/20190611/1217977.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值