# rocketmq_release **Repository Path**: wangyepython/rocketmq_release ## Basic Information - **Project Name**: rocketmq_release - **Description**: No description available - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-20 - **Last Updated**: 2026-01-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RocketMQ 5.1.4 HA部署工具 这是一个使用Go开发的RocketMQ 5.1.4版本HA架构部署工具,支持在三节点CentOS7上自动部署RocketMQ。 ## 功能特性 - 自动下载和解压RocketMQ 5.1.4 - 三节点HA架构部署(Master-Slave模式) - 自动配置NameServer(三节点) - 自动配置Broker HA架构 - 支持systemd服务管理 - 支持启动、停止、状态检查操作 - 使用SSH免密登录进行远程部署 ## 系统要求 - 操作系统:CentOS 7 - 节点数量:3个节点 - 用户权限:普通用户(需要sudo权限) - 网络:节点间网络互通 - SSH:已配置免密登录 ## 安装依赖 在部署前,确保目标节点已安装: - Java 1.8(程序会自动安装) - unzip工具(程序会自动安装) ## 使用方法 ### 1. 编译程序 ```bash chmod +x build.sh ./build.sh ``` ### 2. 部署RocketMQ ```bash ./rocketmq-deployer -nodes 192.168.1.1,192.168.1.2,192.168.1.3 -user deployer -mode deploy ``` ### 3. 启动服务 ```bash ./rocketmq-deployer -nodes 192.168.1.1,192.168.1.2,192.168.1.3 -user deployer -mode start ``` ### 4. 停止服务 ```bash ./rocketmq-deployer -nodes 192.168.1.1,192.168.1.2,192.168.1.3 -user deployer -mode stop ``` ### 5. 查看状态 ```bash ./rocketmq-deployer -nodes 192.168.1.1,192.168.1.2,192.168.1.3 -user deployer -mode status ``` ## 参数说明 - `-nodes`: 节点IP列表,用逗号分隔,必须提供3个节点 - `-user`: SSH登录用户名 - `-mode`: 操作模式 - `deploy`: 部署RocketMQ - `start`: 启动服务 - `stop`: 停止服务 - `status`: 查看状态 ## 架构说明 部署后的架构如下: ### NameServer - 节点1、2、3:NameServer(三节点) ### Controller - 节点1:Controller (controllerId=0) - 节点2:Controller (controllerId=1) - 节点3:Controller (controllerId=2) ### Broker - 节点1:Broker-a (brokerId=0) - 节点2:Broker-a (brokerId=1) - 节点3:Broker-b (brokerId=0) ### 端口配置 - NameServer: 9876 - Controller: 9878 - Broker Listen Port: 10911 - Broker HA Listen Port: 10912 ### JVM配置 - NameServer: -Xms512m -Xmx512m -Xmn256m - Controller: -Xms512m -Xmx512m -Xmn256m - Broker: -Xms1g -Xmx1g -Xmn512m ### 安装目录 - RocketMQ主目录: /opt/rocketmq - 日志目录: /opt/rocketmq/logs - 存储目录: /opt/rocketmq/store - Controller存储目录: /opt/rocketmq/store/controller ### HA架构说明 本部署采用RocketMQ 5.1.4版本的DLedger架构(基于Controller): - Controller集群负责Broker的选举和协调 - Broker通过controllerAddr连接到Controller集群 - Broker的brokerRole设置为CONTROLLER,由Controller管理主从切换 ## 注意事项 1. 确保已配置SSH免密登录 2. 确保普通用户有sudo权限 3. 确保防火墙已开放相关端口(9876, 9878, 10911, 10912) 4. 部署过程需要下载约100MB的RocketMQ包,请确保网络畅通 5. 首次部署会自动安装Java和unzip工具 6. Controller集群需要至少3个节点才能正常工作 7. 启动顺序:NameServer -> Controller -> Broker ## 故障排查 ### 查看服务日志 ```bash # NameServer日志 sudo journalctl -u rocketmq-namesrv.service -f # Controller日志 sudo journalctl -u rocketmq-controller.service -f # Broker日志 sudo journalctl -u rocketmq-broker.service -f # RocketMQ应用日志 tail -f /opt/rocketmq/logs/namesrv.log tail -f /opt/rocketmq/logs/controller.log tail -f /opt/rocketmq/logs/broker.log ``` ### 检查端口监听 ```bash netstat -tlnp | grep -E '9876|9878|10911|10912' ``` ### 检查进程 ```bash ps aux | grep -E 'mqnamesrv|mqcontroller|mqbroker' ``` ## 许可证 本项目仅供学习和参考使用。