我正在使用弹性5.0 。我有一个服务连接到几个ES集群并保持连接打开。为此,我正在使用Transport Client,我已经激活了嗅探,所以我有一个看起来有点像这样的代码
val esSettings = Settings.builder()
.put("cluster.name", "someName")
.put("client.transport.sniff", true)
.build()
val esClient = new TransportClient(esSettings, somePlugins) {}
当我在运行该服务的实例上执行netstat时,我可以看到每个数据节点打开14个TCP连接。下面是使用IP 10.0.194.179
对数据节点进行的所有连接的示例 tcp6 0 0 10.0.199.18:44188 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44184 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44187 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44183 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44189 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44329 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44192 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44185 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44186 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44193 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44181 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44182 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44190 10.0.194.179:9300 ESTABLISHED -
tcp6 0 0 10.0.199.18:44191 10.0.194.179:9300 ESTABLISHED -
14个连接来自here(通用,索引,搜索...)
由于我保持连接对许多群集开放,并且每个群集都有许多数据节点,因此它已达到操作系统可以处理的开放TCP连接的限制。
在我的具体情况中,我只需要ThreadPool(搜索,获取,批量)提供的功能的子集。
有什么方法可以获得ThreadPool的修剪版本,或任何其他方式来减少活动TCP连接的数量?