RocketMQ双主双从集群搭建部署

本文详细介绍了如何搭建RocketMQ的双主双从集群。首先,提供了RocketMQ和JDK的下载链接,接着在131和160两台服务器上进行一系列配置,包括编辑配置文件并使其生效。然后,修改启动脚本`runserver.sh`。接下来,分别在131和160上启动NameServer集群。最后,在131上启动master1和slave2,在160上启动master2和slave2,完成集群部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境准备

服务器系统 Centos7.5
内存 2G
CPU 2核
IP地址 192.168.46.131
服务器系统 Centos7.5
内存 2G
CPU 2核
IP地址 192.168.46.160

RocketMQ包地址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.5.1/rocketmq-all-4.5.1-bin-release.zip

jdk环境地址:https://www.oracle.com/java/technologies/javase-downloads.html

131上操作

vim /etc/hosts

192.168.46.131 rocketmq-nameserver1
192.168.46.160 rocketmq-nameserver2

192.168.46.131 rocketmq-master1
192.168.46.131 rocketmq-slave2
192.168.46.160 rocketmq-master2
192.168.46.160 rocketmq-slave1

160上操作

vim /etc/hosts

192.168.46.160 rocketmq-nameserver2
192.168.46.131 rocketmq-nameserver1

192.168.46.160 rocketmq-master2
192.168.46.160 rocketmq-slave1
192.168.46.131 rocketmq-master1
192.168.46.131 rocketmq-slave2

在131、160上操作

解压包
unzip rocketmq-all-4.4.0-bin-release.zip -d /usr/local/rocketmq
在文件的末尾处添加
vim /etc/profile

ROCKETMQ_HOME=/usr/local/rocketmq/rocketmq-all-4.4.0-bin-release
PATH=$PATH:$ROCKETMQ_HOME/bin
export ROCKETMQ_HOME PATH

输入:wq! 保存并退出, 并使得配置立刻生效

source /etc/profile
mkdir /usr/local/rocketmq/store/{
   
   commitlog,consumequeue,index} -p

回到131上操作

vim /usr/local/rocketmq/rocketmq-all-4.4.0-bin-release/conf/2m-2s-sync/broker-a.properties 
brokerClusterName=rocketmq-cluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime
### 设置和管理 RocketMQ 双主双从集群架构 #### 名词解释 为了更好地理解如何设置和管理 RocketMQ双主双从集群架构,先来了解一下各个组件及其作用。NameServer 是名称服务器,在整个消息队列体系里负责路由管理和负载均衡;Producer 生产者用于发送消息到指定的题(Topic),而 Consumer 则是从特定题订阅并消费这些消息的应用程序实例[^2]。 #### 架构特点 该种类型的集群由两个 Master 和两个 Slave 组成,其中每一对 Master-Slave 形成了一个逻辑上的节点对。这种设计不仅提高了系统的可靠性还增强了容错能力。当其中一个 Master 出现故障时,其对应的 Slave 将接管工作继续提供服务,从而保证了业务连续性[^3]。 #### 环境准备与配置 要成功建立这样一个高可用性的消息中间件环境,需完成如下几个关键步骤: ##### Host 添加信息 编辑 `/etc/hosts` 文件加入所有参与构建此集群机器之间的映射关系,确保它们可以通过机名互相访问[^4]。 ##### 防火墙配置 允许必要的端口通信以便于不同角色之间能够正常交互。通常情况下涉及到了 NameServer 默认监听9876端口、Broker默认使用的10911端口等[^5]。 ##### 环境变量设定 通过修改用户的 shell profile (如 `.bashrc`) 来定义 `ROCKETMQ_HOME` 并将其 bin 目录添加至 PATH 中,使得命令行工具可以被全局调用。 ```shell export ROCKETMQ_HOME=/usr/local/rocketmq export PATH=$PATH:$ROCKETMQ_HOME/bin ``` ##### 存储路径创建 为每一个 Broker 实例单独设立存放日志和其他运行时数据的空间是非常重要的一步操作。这有助于保持良好的性能表现同时也便于后期维护管理工作。 #### Broker 配置调整 针对每个不同的 Broker 成员都需要精心定制相应的参数选项以满足实际应用场景的需求。具体来说就是分别编写适用于 master1, slave1, master2 以及 slave2 的配置文件,并放置在合适的位置下。 对于同步写的场景而言,特别需要注意的是要在 slave 的配置文件中指明 syncMasterEnable=true 这样才能开启同步复制功能。 #### 启动顺序和服务验证 按照一定的次序依次启动 NameServer 和 Brokers ,即先让所有的 NameServers 上线之后再逐一激活 Masters 和 Slaves 。最后借助官方提供的客户端工具或者其他方式测试消息能否顺利发布与接收以此确认整体架构已经正确无误地搭建完毕。 #### 使用 RocketMQ Dashboard 进行监控 一旦完成了上述全部准备工作,则可通过安装部署 RocketMQ Dashboard 来获取关于当前集群状态的各种统计图表及报警提示等功能支持,进一步简化运维人员日常工作的复杂度[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值