配置项作用 #
cluster.name 配置项定义 Easysearch 集群的唯一名称。只有集群名称相同的节点才能组成同一个集群。
配置项类型 #
该配置项为静态配置,需要在启动时设置,修改后需要重启节点才能生效。
默认值 #
easysearch
是否必需 #
可选配置项(但强烈建议为每个集群设置明确的名称)
命名规则 #
- 不能为空
- 不能包含冒号(:)
- 建议使用有意义的名称
工作原理 #
┌─────────────────────────────────────────────────────────┐
│ 节点发现过程 │
└─────────────────────────────────────────────────────────┘
节点A 节点B 节点C
cluster.name: prod cluster.name: prod cluster.name: dev
│ │ │
└───────────┬───────────┘ │
│ │
cluster.name 相同 cluster.name 不同
│ │
▼ ▼
组成同一集群 独立集群
"prod" "dev"
使用示例 #
# 开发环境
cluster.name: dev-cluster
# 测试环境
cluster.name: test-cluster
# 生产环境
cluster.name: prod-cluster
# 多数据中心
cluster.name: prod-dc1
cluster.name: prod-dc2
推荐设置建议 #
为每个环境设置不同的集群名称:
| 环境 | 推荐名称 | 说明 |
|---|---|---|
| 开发 | dev-cluster 或 dev-{项目名} | 开发环境专用 |
| 测试 | test-cluster 或 test-{项目名} | 测试环境专用 |
| 预发布 | staging-cluster 或 staging-{项目名} | 预发布环境 |
| 生产 | prod-cluster 或 prod-{项目名} | 生产环境专用 |
多数据中心部署:
# 数据中心 1
cluster.name: prod-dc1
# 数据中心 2
cluster.name: prod-dc2
命名最佳实践:
- 使用有意义的名称:反映环境、用途或位置
- 保持简洁:避免过长或复杂的名称
- 使用小写:避免大小写混淆
- 使用连字符:提高可读性
- 避免特殊字符:只使用字母、数字和连字符
集群隔离 #
使用不同的集群名称可以隔离不同的集群:
网络环境:同一网段
├── 192.168.1.10 (dev-cluster) ← 开发集群
├── 192.168.1.11 (dev-cluster)
├── 192.168.1.20 (test-cluster) ← 测试集群
├── 192.168.1.21 (test-cluster)
├── 192.168.1.30 (prod-cluster) ← 生产集群
└── 192.168.1.31 (prod-cluster)
即使节点在同一网络中,不同的集群名称也能确保它们组成独立的集群。
安全考虑 #
集群名称验证:
传输层会验证集群名称以防止节点加入错误的集群:
# 客户端配置
cluster.name: prod-cluster
# 如果尝试连接到 cluster.name: test-cluster 的集群
# 将因集群名称不匹配而被拒绝
配置位置 #
配置文件(easysearch.yml):
cluster.name: my-production-cluster
命令行:
./bin/easysearch -Ecluster.name=my-cluster
环境变量:
export ES_JAVA_OPTS="-Ecluster.name=my-cluster"
查看集群名称 #
# 通过 API 查看当前集群名称
GET /
# 响应
{
"name" : "node-1",
"cluster_name" : "my-cluster",
...
}
# 通过 API 查看所有节点的集群信息
GET /_cat/nodes?v
常见问题 #
问题 1:节点无法组成集群
检查各节点的 cluster.name 是否一致:
# 查看每个节点的配置
GET /_nodes/settings?filter_path=**.cluster.name
问题 2:误加入其他集群
确保生产、测试等环境的集群名称不同,避免节点加入错误的集群。
问题 3:集群名称包含冒号
[cluster.name] must not contain ':'
解决方案:使用连字符或下划线替代冒号。
相关配置项 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
node.name | 节点名称 | 机器名随机部分 |
discovery.seed_hosts | 种子节点地址 | - |
cluster.initial_master_nodes | 初始主节点列表 | - |
client.transport.ignore_cluster_name | 是否忽略集群名称验证 | false |
注意事项 #
- 静态配置:修改集群名称需要重启节点
- 生产环境:务必为生产集群设置独特且明确的名称
- 环境隔离:使用不同的集群名称隔离不同环境
- 命名规范:制定并遵守集群命名规范
- 验证连接:使用
client.transport.ignore_cluster_name: false确保连接到正确的集群





