部署rocketmq Dledger4.7.1集群小记(虚拟机版)

Dledger集群模式

简介

RocketMQ-on-DLedger Group 是指一组相同名称的 Broker,至少需要 3 个节点,通过 Raft(分布式算法,另一个常见的是Paxos)的commitLog存储库,自动选举出一个 Leader,其余节点作为 Follower,并在 Leader 和 Follower 之间复制数据以保证高可用。当 Leader 节点出现问题宕机后也能自动容灾切换,并保证数据一致性。该模式也支持 Broker 水平扩展,即可以部署任意多个 RocketMQ-on-DLedger Group 同时对外提供服务。

缺点

缺点:需要 RocketMQ 4.5 及以后版本才支持。

组件说明

Name Server:是一个几乎无状态节点,可集群部署,集群节点间相互独立没有信息交换。其功能主要为更新和发现 Broker 服务,生产者或消费者能够通过其查找到各主题相应的 Broker IP 列表

Broker Server:消息中转角色,负责存储消息,转发消息。分为 Master Broker ( #BID为0) 和 Slave Broker 两个角色,一个 Master Broker 可以对应多个 Slave Broker,但是一个 Slave Broker 只能对应一个 Master Broker。Broker 启动后需要完成一次将自己注册至 Name Server 的操作,随后每隔 30s 定期 向Name Server 上报 Topic 路由信息。

服务器规划

服务器IP安装的服务
n0192.168.1.1DLedger,Broker,NameServer,console
n1192.168.1.2DLedger,Broker,NameServer
n2192.168.1.3DLedger,Broker,NameServer

基础环境配置

sudo yum install openjdk java-1.8.0-openjdk-devel -y
cd /data/ && sudo wget https://archive.apache.org/dist/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip && sudo unzip rocketmq-all-4.7.1-bin-release.zip && sudo mv rocketmq-all-4.7.1-bin-release rocketmq 

配置及说明

基本配置参数说明

brokerClusterName	Broker:集群名称
brokerName:Broker 名称,同一个RaftClusterGroup内,brokerName名要一样
listenPort:Broker 监听端口
namesrvAddr:Broker Namesrv地址和端口
storePathRootDir:Broker 存储目录
storePathCommitLog:Commitlog 存储目录

Dledger 配置参数说明

enableDLegerCommitLog:是否启动 DLedger
dLegerGroup:DLedger Raft Group 的名字,建议和 brokerName 保持一致
dLegerPeers:DLedger Group 内各节点的地址与端口信息(同一个 Group 内的各个节点配置必须要保证一致)
dLegerSelfId:节点 id, 必须属于 dLegerPeers 中的一个;同 Group 内各个节点要唯一,例如:第一个节点配置为”n0”,第二个节点配置为”n1”,第三个节点配置为”n2”
sendMessageThreadPoolNums:发送线程个数(建议配置成 CPU 核数)

服务器1配置-n0

vim conf/dledger/broker-n0.conf
修改Broker配置

brokerClusterName = RaftCluster
brokerName=RaftNode00
listenPort=30911
namesrvAddr=192.168.1.1:9876;192.168.1.2:9876;192.168.1.3:9876
storePathRootDir=/data/rocketmq/rmqstore/node00
storePathCommitLog=/data/rocketmq/rmqstore/node00/commitlog
enableDLegerCommitLog=true
dLegerGroup=RaftNode00
dLegerPeers=n0-192.168.1.1:40911;n1-192.168.1.2:40912;n2-192.168.1.3:40913
dLegerSelfId=n0
sendMessageThreadPoolNums=4

服务器2配置-n1

vim conf/dledger/broker-n1.conf
修改Broker配置

brokerClusterName = RaftCluster
brokerName=RaftNode00
listenPort=30921
namesrvAddr=192.168.1.1:9876;192.168.1.2:9876;192.168.1.3:9876
storePathRootDir=/data/rocketmq/rmqstore/node01
storePathCommitLog=/data/rocketmq/rmqstore/node01/commitlog
enableDLegerCommitLog=true
dLegerGroup=RaftNode00
dLegerPeers=n0-192.168.1.1:40911;n1-192.168.1.2:40912;n2-192.168.1.3:40913
## must be unique
dLegerSelfId=n1
sendMessageThreadPoolNums=4

服务器3配置-n2

vim conf/dledger/broker-n2.conf
修改Broker配置

brokerClusterName = RaftCluster
brokerName=RaftNode00
listenPort=30931
namesrvAddr=192.168.1.1:9876;192.168.1.2:9876;192.168.1.3:9876
storePathRootDir=/data/rocketmq/rmqstore/node02
storePathCommitLog=/data/rocketmq/rmqstore/node02/commitlog
enableDLegerCommitLog=true
dLegerGroup=RaftNode00
dLegerPeers=n0-192.168.1.1:40911;n1-192.168.1.2:40912;n2-192.168.1.3:40913
## must be unique
dLegerSelfId=n2
sendMessageThreadPoolNums=4

启动集群

  1. 在服务器1 执行
cd /data/rocketmq; nohup sh bin/mqnamesrv > nohubNameserv &
cd /data/rocketmq; nohup sh bin/mqbroker  > nohubBroker -c conf/dledger/broker-n0.conf &
  1. 在服务器2 执行
cd /data/rocketmq; nohup sh bin/mqnamesrv > nohubNameserv &
cd /data/rocketmq; nohup sh bin/mqbroker  > nohubBroker -c conf/dledger/broker-n1.conf &
  1. 在服务器3 执行
cd /data/rocketmq; nohup sh bin/mqnamesrv > nohubNameserv &
cd /data/rocketmq; nohup sh bin/mqbroker  > nohubBroker -c conf/dledger/broker-n2.conf &

验证

命令行执行报错
https://www.jianshu.com/p/17fb50162d3d
验证
https://my.oschina.net/u/3391025/blog/4868314

sh bin/mqadmin clusterList -n 127.0.0.1:9876
sh bin/mqshutdown broker
sh bin/mqadmin clusterList -n 127.0.0.1:9876

rocketmq console控制台

https://www.cnblogs.com/miaoying/p/10319840.html
https://blog.csdn.net/H_O_W_E/article/details/113339777

java -jar rocketmq-console-ng-2.0.0.jar --server.port=31080 --rocketmq.config.namesrvAddr=192.168.1.1:9876

日志配置

conf/logback_broker.xml
conf/logback_namesrv.xml
将${user.home}修改为/data/rocketmq

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值