rocketmq

https://www.cnblogs.com/ityushuo/p/15305360.html

角色介绍

  • Producer:消息的发送者; 举例:发信者
  • Consumer:消息接收者;举例:收信者
  • Broker:暂存和传输消息;举例:邮局
  • NameServer:管理Broker;举例:各个邮局的管理机构
  • Topic:区分消息的种类; 一个发送者可以发送消息给一个或者多个Topic;一个消息的接受者可以订阅一个或者多个Topic消息
  • Message Queue:相当于Topic的分区; 用于并行发送和接收消息

 

 

 

 

准备

搭建出双主、双从、无单点故障的高可用 RocketMQ 集群

主机 A:10.202.12.113    修改 broker-a.properties   broker-b-s.properties

主机 B:10.202.12.114    修改  broker-b.properties   broker-a-s.properties

配置文件

进入主机 A 的目录 conf/2m-2s-sync,修改文件 broker-a.properties 的内容如下:

brokerClusterName=rocketmq
brokerName=broker-a
brokerId=0
namesrvAddr=10.202.12.113:9876;10.202.12.114:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=10911
deleteWhen=01
fileReservedTime=72
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/apps/dat/rocketmq/broker-a-master/store
storePathCommitLog=/apps/dat/rocketmq/broker-a-master/store/commitlog
storePathConsumeQueue=/apps/dat/rocketmq/broker-a-master/store/consumequeue
storePathIndex=/apps/dat/rocketmq/broker-a-master/store/index
storeCheckpoint=/apps/dat/rocketmq/broker-a-master/store/checkpoint
abortFile=/apps/dat/rocketmq/broker-a-master/store/abort
maxMessageSize=65536
brokerRole=SYNC_MASTER
flushDiskType=SYNC_FLUSH

主从消息存储路径很关键(master和slave不要在统一目录下)

进入主机 B 的目录 conf/2m-2s-sync,修改文件 broker-b.properties 的内容如下:

brokerClusterName=rocketmq
brokerName=broker-b
brokerId=0
namesrvAddr=10.202.12.113:9876;10.202.12.114:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=10911
deleteWhen=01
fileReservedTime=72
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/apps/dat/rocketmq/broker-b-master/store
storePathCommitLog=/apps/dat/rocketmq/broker-b-master/store/commitlog
storePathConsumeQueue=/apps/dat/rocketmq/broker-b-master/store/consumequeue
storePathIndex=/apps/dat/rocketmq/broker-b-master/store/index
storeCheckpoint=/apps/dat/rocketmq/broker-b-master/store/checkpoint
abortFile=/apps/dat/rocketmq/broker-b-master/store/abort
maxMessageSize=65536
brokerRole=SYNC_MASTER
flushDiskType=SYNC_FLUSH

截止目前为止,Master Broker 的配置文件都配置完毕

进入主机 A 的目录 conf/2m-2s-sync,修改文件 broker-b-s.properties 的内容如下:

[apps@TLKYVM202012113 2m-2s-sync]$ cat broker-b-s.properties
brokerClusterName=rocketmq
brokerName=broker-b
brokerId=1
namesrvAddr=10.202.12.113:9876;10.202.12.114:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=10920
deleteWhen=01
fileReservedTime=72
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/apps/dat/rocketmq/broker-b-slave/store
storePathCommitLog=/apps/dat/rocketmq/broker-b-slave/store/commitlog
storePathConsumeQueue=/apps/dat/rocketmq/broker-b-slave/store/consumequeue
storePathIndex=/apps/dat/rocketmq/broker-b-slave/store/index
storeCheckpoint=/apps/dat/rocketmq/broker-b-slave/store/checkpoint
abortFile=/apps/dat/rocketmq/broker-b-slave/store/abort
maxMessageSize=65536
brokerRole=SLAVE
flushDiskType=SYNC_FLUSH

 进入主机 B 的目录 conf/2m-2s-sync,修改文件 broker-a-s.properties 的内容如下:

brokerClusterName=rocketmq
brokerName=broker-a
brokerId=1
namesrvAddr=10.202.12.113:9876;10.202.12.114:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=10920
deleteWhen=01
fileReservedTime=72
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/apps/dat/rocketmq/broker-a-slave/store
storePathCommitLog=/apps/dat/rocketmq/broker-a-slave/store/commitlog
storePathConsumeQueue=/apps/dat/rocketmq/broker-a-slave/store/consumequeue
storePathIndex=/apps/dat/rocketmq/broker-a-slave/store/index
storeCheckpoint=/apps/dat/rocketmq/broker-a-slave/store/checkpoint
abortFile=/apps/dat/rocketmq/broker-a-slave/store/abort
maxMessageSize=65536
brokerRole=SLAVE

 

 

 

修改启动脚本文件

1)runbroker.sh

vi /usr/local/rocketmq/bin/runbroker.sh

 需要根据内存大小进行适当的JVM参数进行调整:

#===================================================
# 开发环境配置 JVM Configuration
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

2)runserver.sh

vim /usr/local/rocketmq/bin/runserver.sh

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

注意点

默认情况下,RocketMQ 的 nameserver 和 broker 文件启动项里配置的内存太大,极易出现 Cannot allocate memory 的情况。

此时,需要修改 bin/runserver.sh 和 bin/runbroker.sh 的文件内容,将最大堆、最小堆和年轻代的值调小,如下:

                                                                bin/runserver.sh 

                                                                 bin/runbroker.sh 
 

 

服务启动

1)启动NameServe集群
分别在10.202.12.113和10.202.12.114启动NameServer

cd /usr/local/rocketmq/bin
nohup sh mqnamesrv 2>&1 &

2)启动broker集群

  • 在10.202.12.113上启动master1和slave2
    master1:
cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/software/rocketmq/conf/2m-2s-sync/broker-a.properties &

slave2:

cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/software/rocketmq/conf/2m-2s-sync/broker-b-s.properties &
  • 在10.202.12.114上启动master2和slave1
    master2
cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/software/rocketmq/conf/2m-2s-sync/broker-b.properties &

slave1

cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/software/rocketmq/conf/2m-2s-sync/broker-a-s.properties &

查看进程状态

# 查看nameServer日志
tail -500f ~/logs/rocketmqlogs/namesrv.log
# 查看broker日志
tail -500f ~/logs/rocketmqlogs/broker.log

服务停止(依次执行以下两条命令即可)

sh bin/mqshutdown broker

The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK

sh bin/mqshutdown namesrv

The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

 

 

 

使用mqadmin命令查看集群

#使用mqadmin 查看集群状态

[apps@TLKYVM202012113 bin]$ ./mqadmin clusterList -n 127.0.0.1:9876
#Cluster Name     #Broker Name            #BID  #Addr                  #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
rocketmq          broker-a                0     10.202.12.113:10911    V4_9_8                   0.00(0,0ms)         0.00(0,0ms)          0 478131.36 0.4500
rocketmq          broker-a                1     10.202.12.114:10920    V4_9_8                   0.00(0,0ms)         0.00(0,0ms)          0 478131.36 0.3200
rocketmq          broker-b                0     10.202.12.114:10911    V4_9_8                   0.00(0,0ms)         0.00(0,0ms)          0 478131.36 0.3200
rocketmq          broker-b                1     10.202.12.113:10920    V4_9_8                   0.00(0,0ms)         0.00(0,0ms)          0 478131.36 0.4500

 启动成功后,执行 mqadmin 命令查看集群信息:

[apps@TLKYVM202012113 bin]$  ./mqadmin topicList -n 127.0.0.1:9876
test-rocketmq_REPLY_TOPIC
SCHEDULE_TOPIC_XXXX
RMQ_SYS_TRANS_HALF_TOPIC
rocketmq
broker-b
BenchmarkTest
OFFSET_MOVED_EVENT
rocketmq_REPLY_TOPIC
broker-a
SELF_TEST_TOPIC
test-rocketmq

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值