当前位置: 首页 > news >正文

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

1. 环境准备与规划

搭建TongRDS多主多从集群前,合理的环境规划能避免80%的部署问题。我去年在金融项目中使用4台物理机部署2主2从集群时,就因初期规划不周导致多次返工。这里分享几个关键要点:

硬件配置建议:每个节点建议16核CPU/64GB内存起步,特别是中心节点需要处理所有元数据请求。测试环境可以用虚拟机,但生产环境务必使用物理机或高性能云主机。磁盘建议SSD阵列,网络带宽至少10Gbps,这点在数据同步时尤为重要。

网络拓扑禁忌:千万别把主从节点部署在同一台物理机!曾经有团队为节省成本这样做,结果机器故障直接导致数据不可用。建议采用跨机架/跨可用区部署,比如:

  • 主节点1:192.168.1.10(机架A)
  • 主节点2:192.168.1.20(机架B)
  • 从节点1:192.168.1.30(机架C)
  • 从节点2:192.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.shards=2 # 分片0定义(主130,从188) WebSession.shard0.nodes=192.168.153.130:6200,192.168.153.188:6200 WebSession.shard0.slots=0-8000 # 分片1定义(主130,从188) WebSession.shard1.nodes=192.168.153.130:6201,192.168.153.188:6201 WebSession.shard1.slots=8001-16383

避坑指南

  • 节点IP顺序决定主从关系,排在第一的自动成为主节点
  • slots范围必须连续且不重叠,总范围0-16383对应Redis Cluster规范
  • 端口号建议采用6200+分片序号,避免冲突

2.2 同步服务配置

sync.properties负责主从数据同步,常见配置错误会导致复制延迟:

sync.servers=1 sync.server0.host=192.168.153.130 # 中心节点IP sync.server0.port=6300 # 默认同步端口

实测发现,当同步流量超过1Gbps时,建议启用多线程同步:

sync.worker_threads=4 # 根据CPU核心数调整

3. 服务节点调优实战

3.1 多实例端口规划

单机部署多个实例时,必须修改默认端口避免冲突。这是最容易出错的环节之一:

<!-- pmemdb_2/etc/cfg.xml --> <redis_port>6201</redis_port> <!-- 原6200 --> <redis_client_port>6380</redis_port> <!-- 原6379 --> <http_port>29095</http_port> <!-- 原29094 -->

端口分配建议表

节点类型服务端口客户端端口HTTP端口
主节点16200637929094
主节点26201638029095
从节点16202638129096
从节点26203638229097

3.2 动态配置指向

所有服务节点需要知道中心节点位置:

<!-- /etc/dynamic.xml --> <center_node>192.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 2>&1 & # 服务节点(主从通用) nohup ./StartServer.sh > /dev/null 2>&1 &

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:6201

5.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
http://www.cnnetsun.cn/news/1729413.html

相关文章:

  • HJ165 小红的优惠券
  • League Akari:基于LCU API的模块化游戏自动化框架深度解析
  • 交流放大电路
  • 从Linux转Windows也不慌:PowerShell版‘ls/cat/grep‘命令对照表(含常用别名大全)
  • WebForms Controls
  • 2026年4月最新:全职作者深度测评8款AI写长篇小说专业工具,谁能打破“吃设定”与“机器味”魔咒?
  • STC89C52单片机IO口测电阻翻车记:从电容充电法到PCF8591 ADC的实战避坑
  • 基于Vue与Antv-X6构建工业物流可视化编辑器:从拖拽布局到数据交互的完整实践
  • 用Open-AutoGLM打造个人手机助手:自动处理日常任务的完整方案
  • 有问有答答去申请申请
  • 弯管LRA计算软件(XYZ转LRA)
  • 英飞凌TC387 PMSM永磁同步电机FOC控制Demo及相关文档,W032
  • 如何快速免费解密网易云音乐NCM文件:ncmdumpGUI终极指南
  • python docker
  • 告别枯燥点灯:用LVGL 8.2给你的STM32F103开发板做个炫酷仪表盘
  • 华大HC32F460 GPIO配置避坑指南:从LED闪烁到中断触发全流程
  • 突破苹果限制:OpenCore Legacy Patcher让旧Mac重获新生的完整指南
  • 告别90%重复操作:XHS-Downloader如何重构小红书内容采集体验
  • [具身智能-239]:OpenCV 与深度神经网络:两种计算机视觉哲学的深度对比
  • AI赋能嵌入式开发:借助快马平台智能生成与优化FreeRTOS多任务管理系统
  • PP-DocLayoutV3新手教程:3步搭建文档分析环境,Web界面直观好用
  • LeetCode知识点总结 - 540
  • LeetCode知识点总结 - 541
  • PyTorch 2.8镜像快速部署:5分钟验证torch.cuda.device_count()多卡支持
  • 智能游戏协同:重新定义英雄联盟玩家与游戏的交互范式——基于LCU API的全流程辅助解决方案
  • 华为交换机SSH远程登录实战:从零开始配置管理VLAN和AAA认证
  • 考虑需求响应和碳交易的综合能源系统日前优化调度模型 关键词:柔性负荷 需求响应 综合能源系统 ...
  • Sen2Cor批处理实战:从L1C到L2A,如何确保你的大气校正结果不受处理基线影响?
  • 苍穹外卖——项目实战:套餐管理模块的CRUD全流程解析
  • 【实战指南】AutoGen Studio UI层部署与智能体编排:一站式开发环境搭建与核心功能解析