RocketMQ学习笔记

RocketMQ学习笔记

一、下载安装

1.1 官网下载

官网地址:

http://rocketmq.apache.org

下载地址:

https://rocketmq.apache.org/download/

1.2 集群搭建(2m-2s-async模式)

设计架构如下:

服务器 部署节点 部署broker
192.168.10.131 namesrv、broker broker-a-m、broker-b-s
192.168.10.132 namesrv、broker broker-b-m、broker-a-s
192.168.10.133 namesrv 仅部署namesrv
1.2.1 解压、修改内存、新建文件存储目录

rocketMq我放在/usr/local/rocketmq目录,进入目录执行
解压:unzip rocketmq-all-4.9.0-bin-release.zip
修改内存大小:修改runserver.sh和runbroker.sh的JAVA_OPT的大小
cd rocketmq-all-4.9.0-bin-release/bin/

vim runserver.sh

powershell 复制代码
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=160m"

vim runbroker.sh

powershell 复制代码
 JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

在3台服务器的/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release新建目录store

在store下新建master slave两个目录分别存放主、从的相应配置

分别在master slave里面新建abort checkpoint commitlog consumequeue index pathroot目录
mkdir store
cd store/
mkdir master slave
cd master/
mkdir pathroot commitlog consumequeue index checkpoint abort
cd slave/
mkdir pathroot commitlog consumequeue index checkpoint abort

1.2.2 配置192.168.10.131

进入192.168.10.131的/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/conf/2m-2s-async
vim broker-a.properties

powershell 复制代码
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,名字可重复,为了管理,每个master起一个名字,他的slave同他,eg:Amaster叫broker-a,他的slave也叫broker-a
brokerName=broker-a-m
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=192.168.10.131:9876;192.168.10.132:9876;192.168.10.133: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/rocketmq-all-4.9.0-bin-release/store/master/pathroot
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/master/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/master/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/master/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/master/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/master/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

进入192.168.10.131的/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/conf/2m-2s-async
vim broker-b-s.properties

powershell 复制代码
#所属集群名字
brokerClusterName=rocketmq-cluster
brokerName=broker-b-s
#broker名字,名字可重复,为了管理,每个master起一个名字,他的slave同他,eg:Amaster叫broker-b,他的slave也叫broker-b
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.168.10.131:9876;192.168.10.132:9876;192.168.10.133:9876

#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口,
listenPort=10920
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/slave/pathroot
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/slave/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/slave/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/slave/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/slave/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/slave/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
1.2.3 配置192.168.10.132

进入192.168.10.132的/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/conf/2m-2s-async
vim broker-b.properties

powershell 复制代码
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,名字可重复,为了管理,每个master起一个名字,他的slave同他,eg:Amaster叫broker-a,他的slave也叫broker-a
brokerName=broker-b-m
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=192.168.10.131:9876;192.168.10.132:9876;192.168.10.133: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/rocketmq-all-4.9.0-bin-release/store/master/pathroot
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/master/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/master/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/master/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/master/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/master/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

进入192.168.10.132的/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/conf/2m-2s-async
vim broker-a-s.properties

powershell 复制代码
#所属集群名字
brokerClusterName=rocketmq-cluster
brokerName=broker-a-s
#broker名字,名字可重复,为了管理,每个master起一个名字,他的slave同他,eg:Amaster叫broker-b,他的slave也叫broker-b
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.168.10.131:9876;192.168.10.132:9876;192.168.10.133:9876

#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口,
listenPort=10920
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/slave/pathroot
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/slave/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/slave/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/slave/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/slave/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release/store/slave/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
1.2.4 配置192.168.10.133

只做namesrv不启动broker,所以无需配置

1.3 启动
1.3.1 启动namesrv

分别在3台服务器的/usr/local/rocketmq/rocketmq-all-4.9.0-bin-release

启动: nohup sh bin/mqnamesrv &

查看日志: tail -f ~/logs/rocketmqlogs/namesrv.log

1.3.2 启动broker

192.168.10.131

启动master: nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a.properties &
启动slave: nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b-s.properties &
查看日志:tail -f ~/logs/rocketmqlogs/broker.log

192.168.10.132

启动master:nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b.properties &
启动slave: nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a-s.properties &
查看日志:tail -f ~/logs/rocketmqlogs/broker.log

1.4 监控qocketmq

下载控制台:https://github.com/apache/rocketmq-externals/releases

使用IDEA打开后:

修改服务端口:server.port=10088

修改连接地址:
rocketmq.config.namesrvAddr=192.168.10.131:9876;192.168.10.132:9876;192.168.10.133:9876

访问即可看到rocketMq集群
启动:记得开防火墙(一台机器上既有master又有slave,master用的10911、slave改成了10920,都要开墙)

9876 是nameserver中的端口,链接nameserver就靠这个端口 (必开墙)
10911 listenPort参数是broker的监听端口号,是remotingServer服务组件使用,作为对Producer和Consumer提供服务的端口号 (必开墙)
10909 fastListenPort参数是fastRemotingServer服务组件使用,默认为listenPort - 2,可以通过配置文件修改。 打开broker-x.conf,修改或增加fastListenPort参数
10912 haListenPort参数是HAService服务组件使用,用于Broker的主从同步,默认为listenPort -1,可以通过配置文件修改。 打开broker-x.conf,修改或增加haListenPort参数:

相关推荐
LuH11241 小时前
【论文阅读笔记】IC-Light
论文阅读·笔记
汤姆和佩琦1 小时前
2024-12-25-sklearn学习(20)无监督学习-双聚类 料峭春风吹酒醒,微冷,山头斜照却相迎。
学习·聚类·sklearn
是小菜呀!1 小时前
实验四 触发器
笔记
悲伤小伞1 小时前
C++_数据结构_详解二叉搜索树
c语言·数据结构·c++·笔记·算法
好学近乎知o1 小时前
正则表达式(学习Django过程中可能涉及的)
学习·正则表达式·django
雨中奔跑的小孩1 小时前
爬虫学习案例8
爬虫·学习
jieshenai1 小时前
使用 VSCode 学习与实践 LaTeX:从插件安装到排版技巧
ide·vscode·学习
灰太狼不爱写代码4 小时前
CUDA11.4版本的Pytorch下载
人工智能·pytorch·笔记·python·学习
eybk10 小时前
Pytorch+Mumu模拟器+萤石摄像头实现对小孩学习的监控
学习
6.9410 小时前
Scala学习记录 递归调用 练习
开发语言·学习·scala