TongRDS多主多从集群部署实战:从配置到验证的完整指南

张开发
2026/4/10 16:46:19 15 分钟阅读

分享文章

TongRDS多主多从集群部署实战:从配置到验证的完整指南
1. 环境准备与规划搭建TongRDS多主多从集群前合理的环境规划能避免80%的部署问题。我去年在金融项目中使用4台物理机部署2主2从集群时就因初期规划不周导致多次返工。这里分享几个关键要点硬件配置建议每个节点建议16核CPU/64GB内存起步特别是中心节点需要处理所有元数据请求。测试环境可以用虚拟机但生产环境务必使用物理机或高性能云主机。磁盘建议SSD阵列网络带宽至少10Gbps这点在数据同步时尤为重要。网络拓扑禁忌千万别把主从节点部署在同一台物理机曾经有团队为节省成本这样做结果机器故障直接导致数据不可用。建议采用跨机架/跨可用区部署比如主节点1192.168.1.10机架A主节点2192.168.1.20机架B从节点1192.168.1.30机架C从节点2192.168.1.40机架D软件包准备需要区分节点类型# 中心节点 TongRDS-2.2.1.3.MC.tar.gz # 服务节点主从通用 TongRDS-2.2.1.3.Node.tar.gz提示所有节点需统一版本我曾遇到因某个节点用了旧版本导致集群脑裂的情况。建议用md5sum校验安装包一致性。2. 中心节点配置详解2.1 集群拓扑定义cluster.properties是集群的大脑它的每个参数都直接影响数据分布。以二主二从为例# 分片数量主节点数 WebSession.shards2 # 分片0定义主130从188 WebSession.shard0.nodes192.168.153.130:6200,192.168.153.188:6200 WebSession.shard0.slots0-8000 # 分片1定义主130从188 WebSession.shard1.nodes192.168.153.130:6201,192.168.153.188:6201 WebSession.shard1.slots8001-16383避坑指南节点IP顺序决定主从关系排在第一的自动成为主节点slots范围必须连续且不重叠总范围0-16383对应Redis Cluster规范端口号建议采用6200分片序号避免冲突2.2 同步服务配置sync.properties负责主从数据同步常见配置错误会导致复制延迟sync.servers1 sync.server0.host192.168.153.130 # 中心节点IP sync.server0.port6300 # 默认同步端口实测发现当同步流量超过1Gbps时建议启用多线程同步sync.worker_threads4 # 根据CPU核心数调整3. 服务节点调优实战3.1 多实例端口规划单机部署多个实例时必须修改默认端口避免冲突。这是最容易出错的环节之一!-- pmemdb_2/etc/cfg.xml -- redis_port6201/redis_port !-- 原6200 -- redis_client_port6380/redis_port !-- 原6379 -- http_port29095/http_port !-- 原29094 --端口分配建议表节点类型服务端口客户端端口HTTP端口主节点16200637929094主节点26201638029095从节点16202638129096从节点262036382290973.2 动态配置指向所有服务节点需要知道中心节点位置!-- /etc/dynamic.xml -- center_node192.168.153.130/center_node注意启动服务后该文件会被自动修改手工调整会失效。我曾因此浪费两小时排查同步故障。4. 服务启动与运维技巧4.1 JVM内存优化默认配置可能引发OOM特别是大数据量场景。根据物理内存调整# pcenter/bin/external.vmoptions -Xms32g -Xmx32g # 建议不超过物理内存70% # pmemdb/bin/external.vmoptions -Xms16g -Xmx16g启动命令差异# 中心节点 nohup ./StartCenter.sh /dev/null 21 # 服务节点主从通用 nohup ./StartServer.sh /dev/null 21 4.2 日志监控要点启动后立即检查日志tail -f pcenter/logs/center.log # 中心节点 tail -f pmemdb/logs/server.log # 服务节点关键健康指标中心节点无ERROR级别日志服务节点出现Sync connected表示主从链接成功5. 验证测试全流程5.1 集群状态检查使用内置客户端工具连接./Client.sh -r -p 6379 # 连接主节点1 cluster nodes # 预期看到4个节点主从关系正确健康集群的输出示例130:6200 master - 0-8000 188:6200 slave 130:6200 130:6201 master - 8001-16383 188:6201 slave 130:62015.2 数据同步测试写入验证set test_key hello # 立即切换到从节点查询 get test_key # 应返回hello压测建议redis-benchmark -h 192.168.153.130 -p 6379 -n 100000 -c 50同时监控从节点延迟redis-cli -h 192.168.153.188 -p 6200 info replication # 查看lag值应小于3遇到主从不同步时先检查网络连通性再确认中心节点日志是否有同步错误。我在生产环境遇到过因防火墙导致同步端口被阻的情况添加以下规则即可解决iptables -A INPUT -p tcp --dport 6300 -j ACCEPT

更多文章