配置项作用 #
transport.port 配置项指定 Easysearch 节点间集群内部通信的端口范围。节点通过传输端口进行集群状态同步、分片分配、数据传输等内部操作。
配置项类型 #
该配置项为静态配置,需要在启动时设置,修改后需要重启节点才能生效。
默认值 #
9300-9400
是否必需 #
可选配置项(有默认值)
配置格式 #
# 单个端口
transport.port: 9300
# 端口范围
transport.port: 9300-9400
# 使用默认范围
# transport.port: 9300-9400
端口选择机制 #
当配置端口范围时,系统会按以下规则选择端口:
检查 9300 是否可用
│
├─→ 可用 → 绑定 9300
│
└─→ 被占用 → 检查 9301
│
├─→ 可用 → 绑定 9301
│
└─→ 依此类推...
使用示例 #
生产环境单端口:
# 明确指定单个端口
transport.port: 9300
开发环境端口范围:
# 使用端口范围,避免冲突
transport.port: 9300-9400
多实例部署:
# 实例 1
transport.port: 9300
# 实例 2
transport.port: 9301
# 实例 3
transport.port: 9302
传输层用途 #
传输端口用于以下集群内部操作:
┌─────────────────────────────────────────────────────────┐
│ 传输层 (Transport) │
│ 端口: 9300 │
└─────────────────────────────────────────────────────────┘
│
┌───────────────┼───────────────┐
│ │ │
集群状态同步 分片分配 数据传输
│ │ │
▼ ▼ ▼
元数据管理 节点协调 恢复和复制
与 HTTP 端口的区别 #
| 特性 | HTTP 端口 | 传输端口 |
|---|---|---|
| 配置项 | http.port | transport.port |
| 默认值 | 9200-9300 | 9300-9400 |
| 用途 | REST API 客户端 | 集群内部通信 |
| 协议 | HTTP | TCP (专用协议) |
| 安全性 | TLS/SSL 可选 | TLS 通常启用 |
| 防火墙 | 需要对外开放 | 通常仅内部开放 |
推荐设置建议 #
生产环境:使用单个端口或小范围
| 环境 | 推荐配置 | 说明 |
|---|---|---|
| 生产 | 9300 或 9300-9305 | 固定端口便于配置 |
| 开发 | 9300-9400 | 避免端口冲突 |
| 容器 | 9300 | 使用标准端口 |
防火墙配置 #
确保节点间可以互相访问传输端口:
# Linux firewalld
firewall-cmd --permanent --add-port=9300/tcp
firewall-cmd --reload
# Linux ufw
ufw allow 9300/tcp
# Docker 容器间通信
# 通常在 Docker 网络中自动允许
端口占用检查 #
启动前检查端口是否可用:
# Linux/Mac
netstat -an | grep 9300
lsof -i :9300
# Windows
netstat -an | findstr 9300
完整网络配置示例 #
# 节点 1 配置
cluster.name: prod-cluster
node.name: node-1
network.host: 192.168.1.10
# HTTP 服务端口(REST API)
http.port: 9200
# 传输端口(集群内部通信)
transport.port: 9300
# 节点发现配置
discovery.seed_hosts:
- 192.168.1.10:9300
- 192.168.1.11:9300
- 192.168.1.12:9300
常见问题 #
问题 1:节点无法组成集群
检查以下几点:
cluster.name是否一致transport.port是否正确配置- 防火墙是否开放传输端口
- 网络连接是否正常
问题 2:端口被占用
BindException: Address already in use
解决方案:
- 更改端口配置
- 停止占用端口的进程
- 使用端口范围
问题 3:多节点端口冲突
为每个节点配置不同的端口:
# 节点 1
http.port: 9200
transport.port: 9300
# 节点 2
http.port: 9201
transport.port: 9301
# 节点 3
http.port: 9202
transport.port: 9302
安全建议 #
- 内网通信:传输端口通常不需要对外开放
- 防火墙隔离:仅允许集群节点间访问
- TLS 加密:生产环境建议启用传输层加密
- 网络隔离:将集群节点放在独立的网络区域
相关配置项 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
http.port | HTTP REST API 端口 | 9200-9300 |
network.host | 网络绑定地址 | - |
transport.compress | 是否压缩传输数据 | false |
transport.profiles | 传输层配置文件 | - |
注意事项 #
- 静态配置:修改端口需要重启节点
- 端口范围:范围过大可能导致启动时间长
- 集群一致:所有节点的传输层需要能互相访问
- 防火墙配置:确保节点间传输端口互通
- seed_hosts 配置:使用非默认端口时需要在种子地址中指定端口





