一丶环境
- 64位操作系统,推荐 Linux/Unix/macOS
- 64位 JDK 1.8+
- Apache RocketMQ 4.9.4
二丶集群
RocketMQ
支持的集群部署方案有以下4种:
- 多Master模式:一个集群无Slave,全是Master,例如2个Master或者3个Master
- 多Master多Slave模式-异步复制:每个Master配置一个Slave,有多对Master-Slave,HA采用异步复制方式,主备有短暂消息延迟(毫秒级)
- 多Master多Slave模式-同步双写:每个Master配置一个Slave,有多对Master-Slave,HA采用同步双写方式,即只有主备都写成功,才向应用返回成功
- Dledger部署:每个Master配置二个 Slave 组成 Dledger Group,可以有多个 Dledger Group,由 Dledger 实现 Master 选举
下面将介绍多Master多Slave模式-同步双写 集群方式
1. 多master
多slave
模式-同步双写
每个Master配置一个Slave,有多对Master-Slave,HA采用同步双写方式,即只有主备都写成功,才向应用返回成功,这种模式的优缺点如下:
- 优点:数据与服务都无单点故障,Master宕机情况下,消息无延迟,服务可用性与数据可用性都非常高;
- 缺点:性能比异步复制模式略低(大约低10%左右),发送单个消息的RT会略高,且目前版本在主节点宕机后,备机不能自动切换为主机。
1.1 集群规划
节点ip | 节点名称 | 安装服务 |
---|---|---|
192.168.5.151 | myrocketmq1 | NameServer1,BrokerA-master |
192.168.5.152 | myrocketmq2 | NameServer2,BrokerB-master |
192.168.5.153 | myrocketmq3 | BrokerA-slave |
192.168.5.154 | myrocketmq4 | BrokerB-slave |
1.2 集群配置
1)修改配置
节点myrocketmq1 上修改
cat <<EOF >> $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties
namesrvAddr=192.168.5.151:9876;192.168.5.152:9876
E