https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明#组件版本关系
1 单机
nameserver默认端口:9876
rocketmq默认端口:10911
路径:/usr/local/soft
1.1 基于Binary搭建
1.1.1 下载
官网:http://rocketmq.apache.org/
1 2
| cd /usr/local/soft wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
|
1.1.2 解压
解压二进制包
1 2
| unzip rocketmq-all-4.9.4-bin-release.zip mv rocketmq-all-4.9.4-bin-release rocketmq
|
创建数据存储目录
1 2
| mkdir -p /usr/local/soft/rocketmq/store/broker-a /usr/local/soft/rocketmq/store/broker-a/consumequeue /usr/local/soft/rocketmq/store/broker-a/commitlog /usr/local/soft/rocketmq/store/broker-a/index /usr/local/soft/rocketmq/broker-a/logs
|
1.1.3 修改配置文件
1 2
| cd /usr/local/soft/rocketmq/conf vim broker.conf
|
增加内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| listenPort=10911
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
namesrvAddr=localhost:9876
storePathRootDir=/usr/local/soft/rocketmq/store/broker-a
storePathCommitLog=/usr/local/soft/rocketmq/store/broker-a/commitlog
storePathConsumeQueue=/usr/local/soft/rocketmq/store/broker-a/consumequeue
storePathIndex=/usr/local/soft/rocketmq/store/broker-a/index
storeCheckpoint=/usr/local/soft/rocketmq/store/broker-a/checkpoint
abortFile=/usr/local/soft/rocketmq/store/broker-a/abort
|
在虚拟机中有可能因为内存不够而启动失败,修改bin目录下的runbroker.sh 和 runserver.sh 文件,比如把8g 4g 改成512m, 4g 2g改成256m
1.1.4 启动
1 2
| nohup sh mqnamesrv & nohup sh mqbroker -c /usr/local/soft/rocketmq/conf/broker.conf -n localhost:9876 &
|
验证是否启动成功,同时可以观察一下10911端口是否被占用
1 2 3 4 5 6 7 8
| tail -f nohup.out jps -l
lsof -i:9876 netstat -ano | grep "9876"
lsof -i:10911 netstat -ano | grep "10911"
|
1.1.5 避坑
- 网卡问题踩坑解决方案
如果centos上有多个网卡,此时broker使用的ip地址可能不是自己想要的,可以给broker设置对应的ip地址,在conf/broker.conf中进行设置,最后一行加上 brokerIP1=192.168.1.8,然后停止broker后再启动: nohup sh bin/mqbroker -c conf/broker.conf -n localhost:9876 &
1.1.6 关闭服务
1 2 3 4
| cd /usr/local/soft/rocketmq/bin
sh mqshutdown namesrv sh mqshutdown broker
|
1.1.7 Dashboard
(1)下载rocketmq-dashboard源码并解压 下载链接:https://github.com/apache/rocketmq-dashboard
(2)进入源码的resources目录
1
| cd rocketmq-dashboard/src/main/resources/
|
(3)修改application.yml文件

(4)回到rocketmq-dashboard的根目录,执行maven打包命令
(5)进入rocketmq-dashboard的target目录,找到打包好的jar包,启动该jar包
1 2 3
| nohup java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar & tail -f nohup.out lsof -i:18080
|
(6)通过浏览器访问
1.2 基于Source搭建
1.2.1 源码准备
(1)解压源码包
(2)来到源码根目录,打开terminal,使用mvn构建一下
(3)将源码导入到idea中
(4)将distribution中的conf文件夹复制到根目录下
1.2.2 启动NameServer
(1)配置启动参数

(2)通过NamesrvStartup#main方法启动
(3)查看端口监听
1
| netstat -ano | findstr "9876"
|
1.2.3 启动Broker
(1)修改conf文件夹下的broker.conf配置
1 2 3 4 5 6 7 8 9 10 11 12 13
| brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 namesrvAddr=localhost:9876 deleteWhen = 04 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH autoCreateTopicEnable=true storePathRootDir=D:\\share\\vip\\sc\\rocketmq\\store storePathCommitLog=D:\\share\\vip\\sc\\rocketmq\\store\\commitlog storePathConsumeQueue=D:\\share\\vip\\sc\\rocketmq\\store\\consumequeue storePathIndex=D:\\share\\vip\\sc\\rocketmq\\store\\index storeCheckpoint=D:\\share\\vip\\sc\\rocketmq\\store\\checkpoint
|
(2)配置启动参数

(3)通过BrokerStartup#main启动Broker,观察控制台打印信息
(4)查看端口监听
1
| netstat -ano | findstr "10911"
|
1.2.4 Dashboard
(1)下载rocketmq-dashboard源码并解压 下载链接:https://github.com/apache/rocketmq-dashboard
(2)进入源码的resources目录 cd rocketmq-dashboard/src/main/resources/
(3)修改application.yml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| server: port: 18080 servlet: encoding: charset: UTF-8 enabled: true force: true spring: application: name: rocketmq-dashboard logging: config: classpath:logback.xml rocketmq: config: namesrvAddrs: -127.0.0.1:9876
|
(4)打开App类,启动
(5)查看端口监听
(6)通过浏览器访问rocketmq-dashboard
2 集群
二主二从异步集群部署
2.1 节点规划
第一台机器 192.168.44.163,端口规划:
9876 NameServer1
10910 BrokerA-master
10921 BrokerB-slave
第二台机器 192.168.44.164,端口规划:
9876 NameServer2
10920 BrokerB-master
10911 BrokerA-slave

2.2 下载解压
从官网首页最新发布版本进入下载地址 http://rocketmq.apache.org/
1 2
| unzip rocketmq-all-4.7.1-bin-release.zip mv rocketmq-all-4.7.1-bin-release rocketmq
|
在两台机器上都下载、解压好。
在rocketmq/conf目录下,有三种建议配置模式:
2m-2s-async(2主2从异步) —— 本文采用这种
2m-2s-sync (2主2从同步)
2m-noslave (2主)
现在需要修改两台机器上2m-2s-async这个目录中的文件。配置文件修改之前先备份。
2.3 配置第一台机器
192.168.44.163的两个配置文件
(1)broker-a.properties
1 2
| cd /usr/local/soft/rocketmq/conf/2m-2s-async vim broker-a.properties
|
修改的内容(名字自定义,保持一致,否则不能组成集群)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| brokerClusterName=test-cluster
listenPort=10910
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
namesrvAddr=192.168.44.163:9876;192.168.44.164:9876
storePathRootDir=/usr/local/soft/rocketmq/store/broker-a
storePathCommitLog=/usr/local/soft/rocketmq/store/broker-a/commitlog
storePathConsumeQueue=/usr/local/soft/rocketmq/store/broker-a/consumequeue
storePathIndex=/usr/local/soft/rocketmq/store/broker-a/index
storeCheckpoint=/usr/local/soft/rocketmq/store/checkpoint
abortFile=/usr/local/soft/rocketmq/store/abort
|
(2)broker-b-s.properties
1
| vim broker-b-s.properties
|
修改的内容(名字自定义,保持一致,否则不能组成集群)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| brokerClusterName=test-cluster
listenPort=10921
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
namesrvAddr=192.168.44.163:9876;192.168.44.164:9876
storePathRootDir=/usr/local/soft/rocketmq/store/broker-b-s
storePathCommitLog=/usr/local/soft/rocketmq/store/broker-b-s/commitlog
storePathConsumeQueue=/usr/local/soft/rocketmq/store/broker-b-s/consumequeue
storePathIndex=/usr/local/soft/rocketmq/store/broker-b-s/index
storeCheckpoint=/usr/local/soft/rocketmq/store/checkpoint
abortFile=/usr/local/soft/rocketmq/store/abort
|
2.4 配置第二台机器
192.168.44.164的两个配置文件,修改的内容基本一致,主要是注意一下端口号、路径名。
(1)broker-b.properties
1 2
| cd /usr/local/soft/rocketmq/conf/2m-2s-async vim broker-b.properties
|
修改的内容(名字自定义,保持一致,否则不能组成集群)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| brokerClusterName=test-cluster
listenPort=10920
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
namesrvAddr=192.168.44.163:9876;192.168.44.164:9876
storePathRootDir=/usr/local/soft/rocketmq/store/broker-b
storePathCommitLog=/usr/local/soft/rocketmq/store/broker-b/commitlog
storePathConsumeQueue=/usr/local/soft/rocketmq/store/broker-b/consumequeue
storePathIndex=/usr/local/soft/rocketmq/store/broker-b/index
storeCheckpoint=/usr/local/soft/rocketmq/store/checkpoint
abortFile=/usr/local/soft/rocketmq/store/abort
|
(2)broker-a-s.properties
1 2
| cd /usr/local/soft/rocketmq/conf/2m-2s-async vim broker-a-s.properties
|
修改的内容(名字自定义,保持一致,否则不能组成集群)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| brokerClusterName=test-cluster
listenPort=10911
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
namesrvAddr=192.168.44.163:9876;192.168.44.164:9876
storePathRootDir=/usr/local/soft/rocketmq/store/broker-a-s
storePathCommitLog=/usr/local/soft/rocketmq/store/broker-a-s/commitlog
storePathConsumeQueue=/usr/local/soft/rocketmq/store/broker-a-s/consumequeue
storePathIndex=/usr/local/soft/rocketmq/store/broker-a-s/index
storeCheckpoint=/usr/local/soft/rocketmq/store/checkpoint
abortFile=/usr/local/soft/rocketmq/store/abort
|
2.5 创建数据目录
第一台机器163执行(只需要执行一次)
1
| mkdir -p /usr/local/soft/rocketmq/store/broker-a /usr/local/soft/rocketmq/store/broker-a/consumequeue /usr/local/soft/rocketmq/store/broker-a/commitlog /usr/local/soft/rocketmq/store/broker-a/index /usr/local/soft/rocketmq/logs /usr/local/soft/rocketmq/store/broker-b-s /usr/local/soft/rocketmq/store/broker-b-s/consumequeue /usr/local/soft/rocketmq/store/broker-b-s/commitlog /usr/local/soft/rocketmq/store/broker-b-s/index
|
第二台机器164执行(只需要执行一次)
1
| mkdir -p /usr/local/soft/rocketmq/store/broker-a-s /usr/local/soft/rocketmq/store/broker-a-s/consumequeue /usr/local/soft/rocketmq/store/broker-a-s/commitlog /usr/local/soft/rocketmq/store/broker-a-s/index /usr/local/soft/rocketmq/logs /usr/local/soft/rocketmq/store/broker-b /usr/local/soft/rocketmq/store/broker-b/consumequeue /usr/local/soft/rocketmq/store/broker-b/commitlog /usr/local/soft/rocketmq/store/broker-b/index
|
2.6 启动两个NameServer
1 2 3 4 5
| nohup sh /usr/local/soft/rocketmq/bin/mqnamesrv >/usr/local/soft/rocketmq/logs/mqnamesrv.log 2>&1 &
nohup sh /usr/local/soft/rocketmq/bin/mqnamesrv >/usr/local/soft/rocketmq/logs/mqnamesrv.log 2>&1 &
|
2.7 启动Broker
1、启动节点1,163的 broker-a-master,在163上面执行
1
| nohup sh /usr/local/soft/rocketmq/bin/mqbroker -c /usr/local/soft/rocketmq/conf/2m-2s-async/broker-a.properties > /usr/local/soft/rocketmq/logs/broker-a.log 2>&1 &
|
在虚拟机中可能由于内存不够导致无法启动,改动
1 2 3 4
| vim /usr/local/soft/rocketmq/bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"
|
2、启动节点2,164的broker-a-s,在164上面执行
1
| nohup sh /usr/local/soft/rocketmq/bin/mqbroker -c /usr/local/soft/rocketmq/conf/2m-2s-async/broker-a-s.properties > /usr/local/soft/rocketmq/logs/broker-a-s.log 2>&1 &
|
3、启动节点2,164的 broker-b-master,在164上面执行
1
| nohup sh /usr/local/soft/rocketmq/bin/mqbroker -c /usr/local/soft/rocketmq/conf/2m-2s-async/broker-b.properties > /usr/local/soft/rocketmq/logs/broker-b.log 2>&1 &
|
4、启动节点1,163的broker-b-s,在163上面执行
1
| nohup sh /usr/local/soft/rocketmq/bin/mqbroker -c /usr/local/soft/rocketmq/conf/2m-2s-async/broker-b-s.properties > /usr/local/soft/rocketmq/logs/broker-b-s.log 2>&1 &
|
查看端口启动状态:
netstat -an|grep 109
第一台机器 192.168.44.163,端口规划:
9876 NameServer1
10910 BrokerA-master
10921 BrokerB-slave
第二台机器 192.168.44.164,端口规划:
9876 NameServer2
10920 BrokerB-master
10911 BrokerA-slave
3 常用管理命令
https://blog.csdn.net/gwd1154978352/article/details/80829534