
griddb 默认使用 31999(多播模式)或 10001(固定列表模式)作为事务端口,若端口被占用,可通过修改 `gs_cluster.json` 配置文件灵活调整,java 客户端同步更新连接参数即可完成适配。
GridDB 支持多种集群通信方式,其默认事务端口并非全局固定值,而是取决于所选的通信模式:
- 多播模式(Multicast):默认事务端口为 31999;
- 固定列表模式(Fixed List):默认事务端口为 10001。
当您在开发 Java 应用时发现默认端口(如 31999)已被其他服务占用,无需重装或迁移现有应用,只需在 GridDB 服务端进行端口重配置,并在 Java 客户端显式指定新端口即可。
✅ 修改服务端端口:编辑 gs_cluster.json
GridDB 的集群配置集中存储于 gs_cluster.json 文件(通常位于 $GRIDDB_HOME/conf/ 目录下)。请按以下步骤操作:
-
停止 GridDB 集群(确保安全修改):
立即学习“Java免费学习笔记(深入)”;
gs_stopcluster
-
编辑 gs_cluster.json,定位到 transactionPort 字段(位于 cluster 节点下),修改为您期望的空闲端口(例如 10010):
{ "cluster": { "name": "defaultCluster", "replicationNum": 2, "notificationMember": [ { "host": "127.0.0.1", "port": 10010 } ], "transactionPort": 10010 } }⚠️ 注意:transactionPort 必须与 notificationMember.port 保持一致;若启用多播,还需同步检查 multicastPort(默认 41999),但该端口不影响 Java 客户端直连逻辑。
-
保存后重启集群:
gs_startcluster
✅ Java 客户端同步适配
在 Java 应用中,使用 GridStoreFactory.getInstance() 创建连接时,需通过 notificationAddress 显式指定新端口(主机+端口组合):
import com.toshiba.mwcloud.gs.GridStore;
import com.toshiba.mwcloud.gs.GridStoreFactory;
public class GridDBPortExample {
public static void main(String[] args) throws Exception {
// 指定新端口(如 10010),格式为 "host:port"
Properties props = new Properties();
props.setProperty("notificationAddress", "127.0.0.1:10010");
props.setProperty("clusterName", "defaultCluster");
props.setProperty("user", "admin");
props.setProperty("password", "admin");
GridStore store = GridStoreFactory.getInstance().getGridStore(props);
System.out.println("Connected successfully to GridDB on port 10010");
}
}? 验证与注意事项
- ✅ 验证端口是否生效:运行 netstat -tuln | grep 10010(Linux/macOS)或 netstat -ano | findstr :10010(Windows)确认 GridDB 进程已监听新端口。
- ❗ 防火墙与 SELinux:若部署在生产环境,请同步开放新端口的入站规则。
- ? 集群一致性:多节点部署时,所有节点的 gs_cluster.json 中 transactionPort 和 notificationMember.port 必须统一,且各节点间网络互通。
- ? 客户端兼容性:GridDB Java Client 5.0+ 完全支持自定义端口;旧版本建议升级至最新稳定版以避免潜在解析异常。
通过上述配置,您即可彻底解耦端口冲突问题,在保障服务稳定性的同时,实现 Java 应用与 GridDB 的灵活、可靠连接。










