RocketMQ 双主 集群搭建

1.目录

2.优势

 分布式;

严格的消息顺序;

海量消息堆积;

3.集群搭建

修改  vim etc/hosts    底层是netty 的心跳检查,用自带的nameserver实现

10.10.1.59  rocketmq-nameserver1
10.10.1.59  rocketmq-master1
10.10.1.46  rocketmq-nameserver2
10.10.1.46  rocketmq-master2

重启网卡

service network restart

 ping

ping rocketmq-nameserver2

 解压

tar -zxvf alibaba-rocketmq-3.2.6.tar.gz  -C /usr/local

 创建软连接

ln -s alibaba-rocketmq rocketmq

 存储路径

mkdir /usr/local/rocketmq/store
mkdir /usr/local/rocketmq/store/commitlog

mkdir /usr/local/rocketmq/store/consumequeue
mkdir /usr/local/rocketmq/store/index

 修改  vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

 修改 vim /usr/local/rocketmq/conf/2m-noslave/broker-b.properties

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

修改日志配置文件  mkdir -p /usr/local/rocketmq/logs

 cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml

 启动nameserver

cd /usr/local/rocketmq/bin

nohup sh mqnamesrv &

 启动brokerserverA

cd /usr/local/rocketmq/bin

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &

 启动b

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &

端口

firewall-cmd --add-port=9876/tcp

 

查看

 netstat -ntlp
 jps
 tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log
 tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

 结果  broker日志

2019-01-04 00:19:21 INFO BrokerControllerScheduledThread1 - register broker to name server rocketmq-nameserver1:9876 OK
2019-01-04 00:19:21 INFO BrokerControllerScheduledThread1 - register broker to name server rocketmq-nameserver2:9876 OK

 环境搭建完成

------------------------------------------------------------------------------------------------------------------

在tomcat中部署rocket的客户端;

使用eclipse做helloword;

### RocketMQ 高可用集群搭建教程 #### 了解RocketMQ架构 Apache RocketMQ 是一款分布式消息中间件,支持高吞吐量和低延迟的消息传递。为了确保系统的高可用性和可靠性,在生产环境中通常会部署多副本的Broker实例来组成集群[^2]。 #### 准备工作环境 在开始之前,确认已准备好至少两台服务器用于构建从结构的Broker节点。每一对Broker之间保持网络互通,并且时间同步服务正常运行。此外,还需安装JDK并设置好JAVA_HOME环境变量[^4]。 #### 安装与初始化 下载官方发布的最新稳定版本二进制包至各目标机器上解压。对于每一个打算作为Name Server的角色来说,只需启动该进程而无需额外配置;而对于计划成为Broker的服务端,则需依据实际需求调整`broker.conf`中的参数设定[^1]。 #### 修改默认配置文件 进入解压缩后的目录下的`conf/2m-2s-sync`路径找到适用于Master加Slave模式同步刷盘方式的模板文件。重点编辑如下几项: - `brokerRole=ASYNC_MASTER` 或者 `SYNC_MASTER`: 设置当前Broker角色为节点还是异步复制类型的从节点。 - `flushDiskType=ASYN_FLUSH` : 控制磁盘刷新机制为异步操作以提高性能。 - 更新监听IP(`listenPort`) 和其他必要的连接属性以便于远程访问控制。 ```properties # Example of broker configuration file snippet. brokerClusterName=DefaultCluster brokerName=broker-a brokerId=0 namesrvAddr=localhost:9876 storePathRootDir=/home/wangym/rocketmq/store storePathCommitLog=/home/wangym/rocketmq/store/commitlog ``` #### 启动组件 按照先启动NameServer再依次开启各个Broker的原则执行命令行指令完成整个集群的激活过程。注意观察日志输出确保没有任何错误提示发生。 ```bash nohup sh bin/mqnamesrv & nohup sh bin/mqbroker -n localhost:9876 & ``` #### 测试验证 通过发送测试消息到题(Topic),然后尝试读取消息的方式检验集群是否能够正确处理请求。可以借助工具类如`tools.sh`来进行简单的生产和消费模拟实验[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值