
griddb 默认事务端口为 31999(多播模式)或 10001(固定列表模式),若端口冲突,可通过修改 `gs_cluster.json` 配置文件灵活调整,java 客户端同步更新连接参数即可完成适配。
GridDB 支持多种通信方式(如 multicast、fixed-list),其默认事务端口取决于所选通信模式:
- Multicast 模式:默认事务端口为 31999;
- Fixed-list 模式:默认事务端口为 10001。
当 31999 端口已被占用时,推荐切换至 fixed-list 模式并自定义端口,操作步骤如下:
✅ 步骤 1:修改集群配置文件
编辑 GridDB 安装目录下的 conf/gs_cluster.json(路径可能因安装方式略有差异,如 Docker 中需挂载修改),定位到 "transactionPort" 字段,按需修改。例如设为 10002:
{
"dataStore": {
"partitionNum": 128,
"replicationNum": 2,
"syncMode": "ASYNC"
},
"cluster": {
"clusterName": "defaultCluster",
"notificationMember": [
{
"address": "127.0.0.1",
"port": 10002
}
]
},
"transaction": {
"transactionPort": 10002
}
}⚠️ 注意:"notificationMember" 中的 port 必须与 "transactionPort" 保持一致;若使用多节点集群,所有节点的 gs_cluster.json 需统一配置。
✅ 步骤 2:重启 GridDB 集群
执行以下命令使配置生效(以标准安装为例):
立即学习“Java免费学习笔记(深入)”;
# 停止集群 gs_stopcluster # 启动集群 gs_startcluster
验证端口是否已监听:
netstat -tuln | grep 10002 # 或 ss -tuln | grep 10002
✅ 步骤 3:更新 Java 客户端连接参数
在 Java 应用中,通过 GridStoreFactory.getInstance().getGridStore(...) 构建连接时,显式指定新端口:
Properties props = new Properties();
props.setProperty("notificationAddress", "127.0.0.1");
props.setProperty("notificationPort", "10002"); // 与 gs_cluster.json 中 transactionPort 一致
props.setProperty("clusterName", "defaultCluster");
props.setProperty("username", "admin");
props.setProperty("password", "admin");
GridStore store = GridStoreFactory.getInstance().getGridStore(props);? 补充说明
- 修改端口后,务必确保防火墙/SELinux 允许该端口通信;
- 若使用 Docker,需通过 -p 10002:10002 显式映射端口,并在 gs_cluster.json 和 Java 客户端中同步配置;
- 不建议直接修改多播模式下的 31999 端口——因其依赖底层组播机制,端口变更易引发发现失败;fixed-list 模式更可控、更适合生产环境。
通过以上三步,即可安全、可靠地将 GridDB 事务端口迁移至无冲突端口,Java 应用无缝衔接。










