rocketmq搭建

Posted yjl_2130

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rocketmq搭建相关的知识,希望对你有一定的参考价值。

双主双从集群搭建

暂定两台机器

服务器A

nameserverA  brokerA  brokerB-slave

服务器B

nameserverB  brokerB  brokerA-slave

启动顺序

  • 启动nameserver 服务(类似注册中心)
  • 依次启动 brokerA 、brokerB、brokerA-slave 、 brokerB-slave

关闭顺序

  • sh mqshutdown broker
  • sh mqshutdown namesrv

依赖环境

  1. 64 位操作系统,Linux/ Unix/Mac OS
  2. 64位JDK 1.8+

1、下载安装包

rocketmq-all-4.9.2-bin-release.zip

2、加压安装包

unzip rocketmq-all-4.9.2-bin-release.zip

3、默认配置修改

修改rocketmq/bin目录下 runbroker.sh 、runserver.sh jvm参数(按服务器内存大小适配置,官方推荐8g)

  • runbroker.sh
    JAVA_OPT="$JAVA_OPT -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    
    
  • runbroker.sh
    JAVA_OPT="$JAVA_OPT -server -Xms8g -Xmx8g"
    JAVA_OPT="$JAVA_OPT -XX:MaxDirectMemorySize=15g"
    

4、broker配置文件

  • 服务器A brokerA
#RocketMQ Name Server地址列表,多个NameServer地址用分号隔开
namesrvAddr=192.168.209.242:9876;192.168.209.243:9876
#集群名
rokerClusterName=game-rocketmq-cluster
brokerIP1=192.168.209.242
brokerName=broker-a
brokerId=0
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#- ASYNC_MASTER 异步复制Master   - SYNC_MASTER 同步双写Master   - SLAVE 
brokerRole=SYNC_MASTER
#- ASYNC_FLUSH 异步刷盘  SYNC_FLUSH 同步刷盘 
flushDiskType=ASYNC_FLUSH
listenPort=10911
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 
defaultTopicQueueNums=4
#Broker 对外服务的监听端口
listenPort=10911
#commitLog每个文件的大小默认1G 
mapedFileSizeCommitLog=1073741824 
#ConsumeQueue每个文件默认存30W条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000 

#存储路径
storePathRootDir=/root/data/mq/rocketmq/store
#commitLog 存储路径 
storePathCommitLog=/root/data/mq/rocketmq/store/commitlog 
#消费队列存储路径存储路径 
storePathConsumeQueue=/root/data/mq/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/root/data/mq/rocketmq/store/index
#checkpoint 文件存储路径 
storeCheckpoint=/root/data/mq/rocketmq/store/checkpoint 
#abort 文件存储路径 
abortFile=/root/data/mq/rocketmq/store/abort 

#限制的消息大小
maxMessageSize=65536
#并发send线程数,多线程来发送消息可能会出现broker busy
sendMessageThreadPoolNums=128
useReentrantLockWhenPutMessage=true
  • 服务器A brokerB-slave
#RocketMQ Name Server地址列表,多个NameServer地址用分号隔开
namesrvAddr=192.168.209.242:9876;192.168.209.243:9876
#集群名
rokerClusterName=game-rocketmq-cluster
brokerIP1=192.168.209.242
brokerName=broker-b
brokerId=1
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#- ASYNC_MASTER 异步复制Master   - SYNC_MASTER 同步双写Master   - SLAVE 
brokerRole=SLAVE
#- ASYNC_FLUSH 异步刷盘  SYNC_FLUSH 同步刷盘 
flushDiskType=ASYNC_FLUSH
listenPort=10911
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 
defaultTopicQueueNums=4
#Broker 对外服务的监听端口
listenPort=10911
#commitLog每个文件的大小默认1G 
mapedFileSizeCommitLog=1073741824 
#ConsumeQueue每个文件默认存30W条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000 

#存储路径
storePathRootDir=/data/mq/rocketmq/store
#commitLog 存储路径 
storePathCommitLog=/data/mq/rocketmq/store/commitlog 
#消费队列存储路径存储路径 
storePathConsumeQueue=/data/mq/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/data/mq/rocketmq/store/index
#checkpoint 文件存储路径 
storeCheckpoint=/data/mq/rocketmq/store/checkpoint 
#abort 文件存储路径 
abortFile=/data/mq/rocketmq/store/abort 

#限制的消息大小
maxMessageSize=65536

#并发send线程数,多线程来发送消息可能会出现broker busy
sendMessageThreadPoolNums=128
useReentrantLockWhenPutMessage=true
  • 服务器B brokerB
#RocketMQ Name Server地址列表,多个NameServer地址用分号隔开
namesrvAddr=192.168.209.242:9876;192.168.209.243:9876
#集群名
rokerClusterName=game-rocketmq-cluster
brokerIP1=192.168.209.243
brokerName=broker-b
brokerId=0
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#- ASYNC_MASTER 异步复制Master   - SYNC_MASTER 同步双写Master   - SLAVE 
brokerRole=SYNC_MASTER
#- ASYNC_FLUSH 异步刷盘 
#- SYNC_FLUSH 同步刷盘 
flushDiskType=ASYNC_FLUSH
listenPort=10911
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 
defaultTopicQueueNums=4
#Broker 对外服务的监听端口
listenPort=10911
#commitLog每个文件的大小默认1G 
mapedFileSizeCommitLog=1073741824 
#ConsumeQueue每个文件默认存30W条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000 

#存储路径
storePathRootDir=/root/data/mq/rocketmq/store
#commitLog 存储路径 
storePathCommitLog=/root/data/mq/rocketmq/store/commitlog 
#消费队列存储路径存储路径 
storePathConsumeQueue=/root/data/mq/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/root/data/mq/rocketmq/store/index
#checkpoint 文件存储路径 
storeCheckpoint=/root/data/mq/rocketmq/store/checkpoint 
#abort 文件存储路径 
abortFile=/root/data/mq/rocketmq/store/abort 

#限制的消息大小
maxMessageSize=65536

#并发send线程数,多线程来发送消息可能会出现broker busy
sendMessageThreadPoolNums=128
useReentrantLockWhenPutMessage=true
  • 服务器B brokerA-slave
#RocketMQ Name Server地址列表,多个NameServer地址用分号隔开
namesrvAddr=192.168.209.242:9876;192.168.209.243:9876
#集群名
rokerClusterName=game-rocketmq-cluster
brokerIP1=192.168.209.243
brokerName=broker-a
brokerId=1
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#- ASYNC_MASTER 异步复制Master   - SYNC_MASTER 同步双写Master   - SLAVE 
brokerRole=SLAVE
#- ASYNC_FLUSH 异步刷盘 
#- SYNC_FLUSH 同步刷盘 
flushDiskType=ASYNC_FLUSH
listenPort=10911
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 
defaultTopicQueueNums=4
#Broker 对外服务的监听端口
listenPort=10911
#commitLog每个文件的大小默认1G 
mapedFileSizeCommitLog=1073741824 
#ConsumeQueue每个文件默认存30W条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000 

#存储路径
storePathRootDir=/data/mq/rocketmq/store
#commitLog 存储路径 
storePathCommitLog=/data/mq/rocketmq/store/commitlog 
#消费队列存储路径存储路径 
storePathConsumeQueue=/data/mq/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/data/mq/rocketmq/store/index
#checkpoint 文件存储路径 
storeCheckpoint=/data/mq/rocketmq/store/checkpoint 
#abort 文件存储路径 
abortFile=/data/mq/rocketmq/store/abort 

#限制的消息大小
maxMessageSize=65536


#并发send线程数,多线程来发送消息可能会出现broker busy
sendMessageThreadPoolNums=128
useReentrantLockWhenPutMessage=true

5、初始文件夹

mkdir -p /usr/local/rocketmq/store
mkdir -p /usr/local/rocketmq/store/commitlog
mkdir -p /usr/local/rocketmq/store/consumequeue
mkdir -p /usr/local/rocketmq/store/index
mkdir -p /usr/local/rocketmq/store/checkpoint
mkdir -p /usr/local/rocketmq/store/abort

6、启动脚本

nameserver 启动

nohup sh mqnamesrv -n IP:PORT > /root/data/mq/rokermq/nameserv.log 2>&1 &

broker 启动

nohup sh /root/data/www/rocketmq-4.9.2/bin/mqnamesrv -n IP:PORT > /root/data/mq/roketmq 2>&1 &

broker-a
nohup sh /root/data/www/rocketmq-4.9.2/bin/mqbroker -n IP:PORT  -c /root/data/www/rocketmq-4.9.2/conf/2m-2s-sync/broker-a.properties > /root/data/mq/roketmq 2>&1 &

broker-a-s
nohup sh /root/data/www/rocketmq-4.9.2/bin/mqbroker -n IP:PORT  -c /root/data/www/rocketmq-4.9.2/conf/2m-2s-sync/broker-a-s.properties > /root/data/mq/roketmq 2>&1 &

broker-b-s
nohup sh /root/data/www/rocketmq-4.9.2/bin/mqbroker -n IP:PORT  -c /root/data/www/rocketmq-4.9.2/conf/2m-2s-sync/broker-b-s.properties > /root/data/mq/roketmq 2>&1 &

broker-b
nohup sh /root/data/www/rocketmq-4.9.2/bin/mqbroker -n IP:PORT  -c /root/data/www/rocketmq-4.9.2/conf/2m-2s-sync/broker-b.properties > /root/data/mq/roketmq 2>&1 &

#集群机器查询
sh bin/mqadmin clusterList -n 192.168.209.243:9876


以上是关于rocketmq搭建的主要内容,如果未能解决你的问题,请参考以下文章

RocketMQ单机环境搭建

RocketMQ单机环境搭建

一、RocketMQ及虚拟机环境搭建

#yyds干货盘点# 一文带你 RocketMQ 源码调试环境搭建

RocketMQ(六)——集群搭建理论

RocketMQ-Filer