RocketMQ部署

本文详细介绍了如何在CentOS上部署RocketMQ,包括安装、配置、启动NameServer和Broker,以及各种管理命令的使用。同时,还提供了Java项目的创建和测试,深入解析了RocketMQ的基础概念、消费模式、存储结构和消息刷盘机制等核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文档

https://rocketmq.apache.org/zh/docs/quickStart/01quickstart

centos中部署

安装

$ unzip rocketmq-all-5.1.3-source-release.zip
$ cd rocketmq-all-5.1.3-source-release/
$ mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U
$ cd distribution/target/rocketmq-5.1.3/rocketmq-5.1.3

mvn环境查看jenkis安装中mvn部署

修改配置文件

1.修改broker.com
	#Broker 对外服务的监听端口
	listenPort=10911
	#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
	autoCreateTopicEnable=true
	#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
	autoCreateSubscriptionGroup=true
	#nameServer地址,分号分割
	namesrvAddr=localhost:9876
	#存储路径
	storePathRootDir=/usr/local/tools/rocketmq/store/broker-a
	#commitLog 存储路径
	storePathCommitLog=/usr/local/tools/rocketmq/store/broker-a/commitlog
	#消费队列存储路径存储路径
	storePathConsumeQueue=/usr/local/tools/rocketmq/store/broker-a/consumequeue
	#消息索引存储路径
	storePathIndex=/usr/local/tools/rocketmq/store/broker-a/index
	#checkpoint 文件存储路径
	storeCheckpoint=/usr/local/tools/rocketmq/store/broker-a/checkpoint
	#abort 文件存储路径
	abortFile=/usr/local/tools/rocketmq/store/broker-a/abort
2.修改启动的内容
	vim runserver.sh
		JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
	vim runbroker.sh
		JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
	vim tools.sh
		JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"
3.修改tools.sh配置文件
	export NAMESRV_ADDR=127.0.0.1:9876

启动NameServer

nohup sh bin/mqnamesrv &
tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

启动Broker+Proxy

$ nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &
$ tail -f ~/logs/rocketmqlogs/proxy.log 
The broker[broker-a,192.169.1.2:10911] boot success...

4. 工具测试消息收发

$ export NAMESRV_ADDR=localhost:9876
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
 SendResult [sendStatus=SEND_OK, msgId= ...
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
 ConsumeMessageThread_%d Receive New Messages: [MessageExt...

基本命令

关闭服务

sh bin/mqshutdown broker
sh bin/mqshutdown namesrv

查看帮助

sh mqadmin help 命令名称
# 查看updateTopic的使用
sh mqadmin help updateTopic

创建修改Topic(主题)

指令: updateTopic
类路径:com.alibaba.rocketmq.tools.command.topic.UpdateTopicSubCommand
参数
参数	是否必填	说明
-b	如果 -c为空,则必填	broker地址,表示topic建在该broker
-c	如果 -b为空,则必填	cluster名称,表示topic建在该集群(集群可通过clusterList查询)
-h	否	打印帮助
-n	是	nameserve服务地址列表,格式ip:port;ip:port;-p	否	指定新topic的权限限制( W
-r	否	可读队列数(默认为8)
-w	否	可写队列数(默认为8)
-t	是	topic名称(名称只能使用字符 ^[a-zA-Z0-9_-]+$ )

例子:
# 在集群DefaultCluster上创建主题ZTEExample,nameserve地址为172.21.16.253:9876
sh mqadmin updateTopic –n 172.21.16.253:9876 –c DefaultCluster –t ZTEExample

删除主题Topic

指令: deleteTopic
类路径:com.alibaba.rocketmq.tools.command.topic.DeleteTopicSubCommand
参数
参数	是否必填	说明
-c	是	cluster名称,表示删除某集群下的某个topic (集群可通过clusterList查询)
-h	否	打印帮助
-n	是	nameserve服务地址列表,格式ip:port;ip:port;-t	是	topic名称(名称只能使用字符 ^[a-zA-Z0-9_-]+$ )
例子:
# 在集群DefaultCluster上删除主题ZTEExample,nameserve地址为172.21.16.253:9876
sh mqadmin deleteTopic –n 172.21.16.253:9876 –c DefaultCluster –t ZTEExample

创建修改订阅组

指令: updateSubGroup
类路径:com.alibaba.rocketmq.tools.command.consumer.UpdateSubGroupSubCommand
参数
参数	是否必填	说明
-b	如果 -c为空,则必填	broker地址,表示topic建在该broker
-c	如果 -b为空,则必填	cluster名称,表示topic建在该集群(集群可通过clusterList查询)
-d	否	是否容许广播方式消费
-g	是	订阅组名
-i	否	从哪个broker开始消费
-m	否	是否容许从队列的最小位置开始消费,默认会设置为false
-q	否	消费失败的消息放到一个重试队列,每个订阅组配置几个重试队列
-r	否	重试消费最大次数,超过则投递到死信队列,不再投递,并报警
-s	否	消费功能是否开启
-h	否	打印帮助
-n	是	nameserve服务地址列表,格式ip:port;ip:port;-w	否	发现消息堆积后,将Consumer的消费请求重定向到另外一台Slave机器

删除订阅组配置

指令: deleteSubGroup
类路径:com.alibaba.rocketmq.tools.command.consumer.DeleteSubscriptionGroupCommand
参数
参数	是否必填	说明
-b	如果 -c为空,则必填	broker地址,表示订阅组建在该broker
-c	如果 -b为空,则必填	cluster名称,表示topic建在该集群(集群可通过clusterList查询)
-g	是	订阅组名
-h	否	打印帮助
-n	是	nameserve服务地址列表,格式ip:port;ip:port;

更新broker配置文件

指令: updateBrokerConfig
类路径:com.alibaba.rocketmq.tools.command.broker.UpdateBrokerConfigSubCommand
参数
参数	是否必填	说明
-b	如果 -c为空,则必填	broker地址,表示订阅组建在该broker
-c	如果 -b为空,则必填	cluster名称,表示topic建在该集群(集群可通过clusterList查询)
-k	否	是否容许广播方式消费
-v	是	value值
-h	否	打印帮助
-n	是	nameserve服务地址列表,格式ip:port;ip:port;

查看topic列表信息

指令: updateBrokerConfig
类路径:com.alibaba.rocketmq.tools.command.broker.UpdateBrokerConfigSubCommand
参数
参数	是否必填	说明
-b	如果 -c为空,则必填	broker地址,表示订阅组建在该broker
-c	如果 -b为空,则必填	cluster名称,表示topic建在该集群(集群可通过clusterList查询)
-k	否	是否容许广播方式消费
-v	是	value值
-h	否	打印帮助
-n	是	nameserve服务地址列表,格式ip:port;ip:port;…
例子
# nameserve地址为172.21.16.253:9876;
sh mqadmin topicList -n 172.21.16.253:9876

查看路由信息

指令: topicRoute
类路径: com.alibaba.rocketmq.tools.command.topic.TopicRouteSubCommand
参数
参数	是否必填	说明
-t	是	topic名称
-h	否	打印帮助
-n	是	nameserve服务地址列表,格式ip:port;ip:port;#  查看主题%DLQ%consumer1的路由,nameserve地址为172.21.16.253:9876
sh mqadmin topicRoute -n 172.21.16.253:9876 -t %DLQ%consumer1

查看topic统计情况

指令: topicStatus
类路径:com.alibaba.rocketmq.tools.command.topic.TopicStatsSubCommand
参数
参数	是否必填	说明
-t	是	topic名称
-h	否	打印帮助
-n	是	nameserve服务地址列表,格式ip:port;ip:port;…
例子
# 查看主题%DLQ%consumer1的统计信息,nameserve地址为172.21.16.253:9876
sh mqadmin topicStatus -n 172.21.16.253:9876 -t %DLQ%consumer1

查看broker统计信息

指令: brokerStatus
类路径:com.alibaba.rocketmq.tools.command.broker.BrokerStatsSubCommand
参数
参数	是否必填	说明
-b	是	broker地址
-h	否	打印帮助
-n	是	nameserve服务地址列表,格式ip:port;ip:port
例子
# 查看broker(crmdb)的统计信息,broker地址为172.21.16.253:10911,nameserve地址为172.21.16.253:9876
sh mqadmin brokerStatus  –n 172.21.16.253:9876 -b 172.21.16.253:10911

根据消息ID查询消息

指令: queryMsgById
类路径:com.alibaba.rocketmq.tools.command.message.QueryMsgByIdSubCommand
参数
参数	是否必填	说明
-i	是	msgId
-h	否	打印帮助
-n	是	nameserve服务地址列表,格式ip:port;ip:port;
例子
#查询msgId= C0A89F8000002A9F000000000000449A的消
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_51711897

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值