RocketMQ主从搭建

RocketMQ-四种集群环境构建

1.单点模式

2.主从模式
主节点消息收发,同步到从节点,主节点挂了,从节点可以保证消息不丢失

3.双主模式

4.双主双从模式,多主多从模式

主要使用2和4两种

主从模式集群构建

保障消息的即时性和可靠性并存

投递一条消息后,关闭主节点,故障演练,数据一致性能否保证

(同步刷盘和异步刷盘)

从节点可以继续提供消费者继续消费,不能接收消息

主节点重新上线后进行消费进度的offset同步

开始构建主从模式架构
1.在构建过的虚拟机中修改配置
vi /etc/hosts

172.19.24.103 rocketmq-nameserver1
172.19.24.103 rocketmq-master1
172.19.24.113 rocketmq-nameserver2
172.19.24.113 rocketmq-master-slave1

两台机器都配置hosts如上

2.slave机器修改配置文件如下

brokerClusterName=rocketmq-cluster

brokerName=broker-a

brokerId=1

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

defaultTopicQueueNums=4

autoCreateTopicEnable=true

autoCreateSubScriptionGroup=true

listenPosr=10911

deleteWhen=04

fileReservedTime=120

mapedFileSizeCommitLog=1073741824

mapedFileSizeConsumeQueue=300000

diskMaxUsedSpaceRatio=88

storePathRootDir=/usr/local/rocketmq/store

storePathCommitLog=/usr/local/rocketmq/store/commitLog

storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue

storePathIndex=/usr/local/rocketmq/store/index

storeCheckpooint=/usr/local/rocketmq/store/checkpoint

abortFile=/usr/local/rocketmq/store/abort

maxMessageSize=65536

brokerRole=SLAVE

flushDiskType=ASYNC_FLUSH

同步到两台机器

相关单机搭建请参考RocketMQ环境搭建一文
3.增加相关日志信息配置,详见Rocket单机的环境配置

第一台机器启动NameServer
nohup sh mqnamesrv &
第一台机器启动Broker
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a.properties > /dev/null 2>&1 &

第一台机器启动NameServer
nohup sh mqnamesrv &
第二台机器启动Broker
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a-s.properties > /dev/null 2>&1 &

值得注意的是放火墙需要打开10912端口,HA主要使用该端口同步数据。
查看防火墙端口是否打开
firewall-cmd --query-port=10912/tcp

(1)首先启动完成master和slave
(2)用Producer发送消息到集群
(3)将主节点关闭,模拟主节点宕机
(4)Consumer启动之后还是能消费到Producer发送的数据
(5)再次启动Master节点,没有消费到新的数据
证明主从架构能够保证主节点宕机之后,能够保证数据不丢失。具备高可用特性,可避免单点故障。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容