roketmq的Dledger集群搭建

前言

该文档主要介绍如何部署自动容灾切换的 RocketMQ-on-DLedger Group。

RocketMQ-on-DLedger Group 是指一组相同名称的 Broker,至少需要 3 个节点,通过 Raft 自动选举出一个 Leader,其余节点 作为 Follower,并在 Leader 和 Follower 之间复制数据以保证高可用。
RocketMQ-on-DLedger Group 能自动容灾切换,并保证数据一致。
RocketMQ-on-DLedger Group 是可以水平扩展的,也即可以部署任意多个 RocketMQ-on-DLedger Group 同时对外提供服务

一.下载

1.下载mq源码编译

git clone https://github.com/apache/rocketmq.git

cd rocketmq git checkout -b store_with_dledger origin/store_with_dledger

mvn -Prelease-all -DskipTests clean install -U

2.下载控制台源码

一个 rocketmq 的扩展项目,其中的 rocketmq-console 是控制台,下载项目:
https://github.com/apache/rocketmq-externals
 

3.部署

1)完成正式三台NameServer的部署

首先是在三台NameServer的机器上,大家就按照上面的步骤安装好Java,构建好Dledger和RocketMQ,然后编辑对应的文件,设置 好JAVA_HOME就可以了。

此时可以执行如下的一行命令就可以启动NameServer:

nohup sh mqnamesrv &

这个NameServer监听的接口默认就是9876,所以如果你在三台机器上都启动了NameServer,那么他们的端口都是9876,此时我们 就成功的启动了三个NameServer了

2)完成一组Broker集群的部署

接着需要启动一个Master Broker和两个Slave Broker,这个启动也很简单,分别在上述三台为Broker准备的高配置机器上,安装好 Java,构建好Dledger和RocketMQ,然后编辑好对应的文件。

接着就可以执行如下的命令:

nohup sh bin/mqbroker -c conf/dledger/broker-n0.conf &

 

这里要给大家说一下,第一个Broker的配置文件是broker-n0.conf,第二个broker的配置文件可以是broker-n1.conf,第三个broker 的配置文件可以是broker-n2.conf。

对于这个配置文件里的东西要给大家说明一下,自己要做对应的修改。

我们用broker-n0.conf举例子,然后在每个配置项上加入注释,告诉大家应该如何修改每台机器的配置:

这里贴出 conf/dledger/broker-n0.conf 的配置举例。

brokerIP1=192.168.8.201
brokerClusterName = RaftCluster
brokerName=RaftNode00
listenPort=30911
namesrvAddr=192.168.8.201:9876;192.168.8.202:9876;192.168.8.203:9876
storePathRootDir=/usr/local/node00
storePathCommitLog=/usr/local/node00/commitlog
enableDLegerCommitLog=true
dLegerGroup=RaftNode00
dLegerPeers=n0-192.168.8.201:40911;n1-192.168.8.202:40912;n2-192.168.8.203:40913
## must be unique
dLegerSelfId=n0
sendMessageThreadPoolNums=4

brokerClusterName这个是集群的名称,你整个broker集群都可以用这个名称RaftCluster
brokerName这是Broker的名称,比如你有一个Master和两个Slave,那么他们的Broker名称必须是一样的RaftNode00
listenPort这个就是你的Broker监听的端口号,如果每台机器上就部署一个Broker,可以考虑就用这个端口号,不用修改30911
namesrvAddr这里是配置NameServer的地址,如果你有很多个NameServer的话,可以在这里写入多个NameServer的地址192.168.8.201:9876;192.168.8.202:9876;192.168.8.203:9876
storePathRootDir存放Broker数据的地方,你可以换成别的目录/usr/local/node00
storePathCommitLog存放Broker数据的地方,你可以换成别的目录/usr/local/node00/commitlog
name含义举例
enableDLegerCommitLog是否启动 DLedger true
dLegerGroupDLedger Raft Group的名字,建议和 brokerName 保持一致RaftNode00
dLegerPeersDLedger Group 内各节点的端口信息,同一个 Group 内的各个节点配置必须要保证一致 n0-127.0.0.1:40911;n1-127.0.0.1:40912;n2-127.0.0.1:40913
dLegerSelfId节点 id, 必须属于 dLegerPeers 中的一个;同 Group 内各个节点要唯一n0
sendMessageThreadPoolNums发送线程个数,建议配置成 Cpu 核数16

启动完成过后,可以跟NameServer进 行通信,检查Broker集群的状态,就是如下命令:

sh bin/mqadmin clusterList -n 127.0.0.1:9876。

3)控制台启动

进入 rocketmq-externals目录
> cd rocketmq-console
> vim src/main/resources/application.properties
设置 console 的端口
找到 rocketmq.config.namesrvAddr ,填上自己的地址端口
server.address=192.168.8.201
server.port=9527
rocketmq.config.namesrvAddr=192.168.8.201:9876;192.168.8.202:9876;192.168.8.203:9876
运行
> mvn spring-boot:run
或打包:
> mvn clean package -Dmaven.test.skip=true

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值