RocketMQ基于4.6之后集群搭建(自动选举)

上一遍文章介绍了4.5之前集群的搭建,本文介绍4.6之后可以引入第三方dleger实现自动选举功能的集群搭建

dleger:同步数据;选举

通过第三方dleger配置master宕了,slave自动选举master

dleger是独立的服务,内嵌到broker中,同一集群下dleger之前建立通信,发送心跳包;dleger完成数据同步,选举

集群图:

dleger数据同步、选举:

准备六台虚拟机,配置两主四从(自我配置的)

首先六台机器(broker)启动nameserve(在窗口),在bin 目录下执行

命令: ./mqnamesrv &

一主三从配置(配置了dleger)

主配置:

1、修改配置文件(主(master))

vi rockemq/conf/2m-2s-async/broker-a.properties

加入配置属性:

namesrvAddr=192.168.32.130:9876;192.168.32.131:9876;192.168.32.132:9876;192.168.32.133:9876;192.168.32.134:9876;192.168.32.135:9876

#dleger

anbleDLegerCommitLog = true

dLegerGroup = broker-a

dLegerPeers = n0-192.168.32.130:40911;n1-192.168.32.131:40911;n2-192.168.32.132:40911;n3-192.168.32.133:40911

dLegerSelfId = n0

sendMessageThreadPoolNums = 4

2、启动boker(bin目录下)

./mqbroker -c ../conf/2m-2s-async/broker-a.properties

从配置:

1、修改配置文件(从(slave)第一台)

vi rockemq/conf/2m-2s-async/broker-a-s.properties

加入配置属性:

namesrvAddr=192.168.32.130:9876;192.168.32.131:9876;192.168.32.132:9876;192.168.32.133:9876;192.168.32.134:9876;192.168.32.135:9876

#dleger

anbleDLegerCommitLog = true

dLegerGroup = broker-a

dLegerPeers = n0-192.168.32.130:40911;n1-192.168.32.131:40911;n2-192.168.32.132:40911;n3-192.168.32.133:40911

dLegerSelfId = n1

sendMessageThreadPoolNums = 4

2、启动boker(bin目录下)

./mqbroker -c ../conf/2m-2s-async/broker-a-s.properties

3、修改配置文件(从(slave)第二台)

vi rockemq/bin/conf/2m-2s-async/broker-a-s.properties

加入配置属性:

namesrvAddr=192.168.32.130:9876;192.168.32.131:9876;192.168.32.132:9876;192.168.32.133:9876;192.168.32.134:9876;192.168.32.135:9876

#dleger

anbleDLegerCommitLog = true

dLegerGroup = broker-a

dLegerPeers = n0-192.168.32.130:40911;n1-192.168.32.131:40911;n2-192.168.32.132:40911;n3-192.168.32.133:40911

dLegerSelfId = n2

sendMessageThreadPoolNums = 4

注意:brokerId,dLegerSelfId得换(brokerId = 0 是主,brokerId > 0 是从)

4、启动boker(bin目录下)

./mqbroker -c ../conf/2m-2s-async/broker-a-s.properties

5、同上配置第三台从

注意:brokerId,dLegerSelfId得换

一主一从配置(未配置dleger)

主配置:

1、修改配置文件(主(master))

vi rockemq/conf/2m-2s-async/broker-a.properties

加入配置属性:

namesrvAddr=192.168.32.130:9876;192.168.32.131:9876;192.168.32.132:9876;192.168.32.133:9876;192.168.32.134:9876;192.168.32.135:9876

2、启动boker(bin目录下)

./mqbroker -c ../conf/2m-2s-async/broker-b.properties

从配置:

1、修改配置文件(从(slave)第一台)

vi rockemq/conf/2m-2s-async/broker-b-s.properties

加入配置属性:

namesrvAddr=192.168.32.130:9876;192.168.32.131:9876;192.168.32.132:9876;192.168.32.133:9876;192.168.32.134:9876;192.168.32.135:9876

2、启动boker(bin目录下)

./mqbroker -c ../conf/2m-2s-async/broker-b-s.properties

各个broker 集群之间的 DLedger 是不影响的,以集群为单位 DLedger 隔离

如此两主四从集群及搭建好了,其中一主三从支持主备切换

看控制台

1、启动控制台

2、这里随便配置一个nameServier,端口号是9876,记得先按回车再保存

3、查看Cluster(集群)情况

停掉broker-a主服务器,可以看到自主选出新的master

同一主从集群里需要配置至少三个从,三台机器,因为如果broker-a就两个从,选举没有过半数(brokerId=0是master),各自投一票给别人,票数无法超过一半,无法选出主;一般集群broker数量都应该为奇数

附加:

属性释义:

enableDlegerCommitLog:打开dleger

dLegerGroup:分组,一般来说跟brokerName配置成一样的。同一个M-S集群

dLegerPeers:dleger结点,与broker不同,相当于放哨的;broker有几个,dleger有几个;

enableDlegerCommitLog=true,在broker里会默认启一个40911端口(相当于 broker小弟,独立的,内嵌到broker)

dLegerSelfId:与dLegerPeers上面对应;如图中n0

选举:

broker的配置已失效,即使brokerId=0,但经过选举后会另产生master

  • 32
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值