配置项作用 #
cluster.remote.connections_per_cluster 配置项用于控制本地集群到每个远程集群建立的最大连接数。
当连接到远程集群时,系统会从种子节点开始发现更多节点,直到达到此配置设置的最大连接数。
配置项属性 #
- 配置路径:
cluster.remote.connections_per_cluster - 数据类型:
integer - 默认值:
3 - 最小值:
1 - 是否可选: 是
- 是否动态: 是(支持动态更新)
- 别名:
cluster.remote.node_connections
配置项详解 #
工作机制 #
本地集群 远程集群
│ │
│ │
│ ──── 连接1 ──────────→ 节点1 (种子节点)
│ │
│ ──── 连接2 ──────────→ 节点2 (自动发现)
│ │
│ ──── 连接3 ──────────→ 节点3 (自动发现)
│ │
│ │
│ (最多 connections_per_cluster 个连接)
连接建立过程 #
- 初始连接: 连接到配置的种子节点
- 节点发现: 通过种子节点获取远程集群的节点列表
- 筛选节点: 根据
node.attr配置筛选符合条件的节点 - 建立连接: 逐个建立连接,直到达到最大连接数
- 负载均衡: 跨集群搜索请求会分发到这些连接
跨集群搜索请求分发 #
协调节点 远程集群
│ │
│ ←───── 搜索请求 ────────── │
│ │
│ (分发到已建立的连接) │
│ │
├────────→ 连接1 (节点1) │
├────────→ 连接2 (节点2) │
└────────→ 连接3 (节点3) │
│
←─────────────────────────────┼── 返回结果
配置建议 #
生产环境(标准) #
cluster.remote.connections_per_cluster: 3
建议: 保持默认值 3。适用于大多数生产环境,提供基本的负载均衡和冗余。
高并发场景 #
cluster.remote.connections_per_cluster: 6
建议: 增加到 5-10。当跨集群搜索请求量大时,增加连接数可以提高并发处理能力。
大型远程集群 #
cluster.remote.connections_per_cluster: 10
建议: 增加到 8-15。当远程集群节点数量多(如 50+ 节点)时,可以增加连接数以利用更多节点资源。
小型远程集群 #
cluster.remote.connections_per_cluster: 2
建议: 减少到 1-2。当远程集群只有少数节点时,不需要太多连接。
代码示例 #
easysearch.yml 配置 #
cluster:
remote:
production:
seeds: ["prod-node1:9300", "prod-node2:9300"]
# 使用默认连接数 3
高并发配置 #
cluster:
remote:
production:
seeds: ["prod-node1:9300", "prod-node2:9300"]
connections_per_cluster: 8
多个远程集群配置 #
cluster:
remote:
cluster_a:
seeds: ["cluster-a-node1:9300"]
connections_per_cluster: 3
cluster_b:
seeds: ["cluster-b-node1:9300"]
connections_per_cluster: 5
动态更新配置 #
# 通过 API 动态更新连接数
PUT _cluster/settings
{
"persistent": {
"cluster.remote.connections_per_cluster": 5
}
}
相关配置 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
cluster.remote.<name>.seeds | 远程集群种子节点列表 | - |
cluster.remote.node.attr | 节点属性筛选 | - |
cluster.remote.initial_connect_timeout | 初始连接超时时间 | 30s |
连接数选择指南 #
| 远程集群规模 | 推荐连接数 | 说明 |
|---|---|---|
| 小型(< 10 节点) | 1-3 | 基本冗余即可 |
| 中型(10-50 节点) | 3-5 | 默认值适合 |
| 大型(50+ 节点) | 5-15 | 利用更多节点资源 |
| 高并发场景 | 8-20 | 根据并发量调整 |
性能影响 #
| 连接数设置 | 优点 | 缺点 |
|---|---|---|
| 较小(1-2) | 节省资源 | 负载均衡能力有限,单点故障风险 |
| 中等(3-5) | 平衡性能和资源 | 标准设置 |
| 较大(10+) | 高并发处理能力强 | 占用更多内存和网络连接 |
资源消耗 #
每个远程连接会消耗:
- 网络连接资源
- 内存(用于连接状态管理)
- 线程资源
注意事项 #
动态更新: 此配置支持动态更新,修改后会触发连接重建。
按集群配置: 可以为每个远程集群单独配置连接数。
节点限制: 连接数不会超过远程集群中符合条件的节点数量。
与 node.attr 配合: 如果配置了
node.attr筛选,连接数只会考虑符合条件的节点。重新连接: 修改连接数后,现有连接会根据新配置进行调整。
负载均衡: 连接数越多,跨集群搜索请求的分发越均匀。
监控建议: 监控远程连接的使用情况,根据实际负载调整连接数。





