RocketMQ使用

前言

  • 版本:RocketMQ 4.9.8
  • 端口:9876(NameServer)、10911(Broker)
  • 安装目录:/usr/local/rocketmq-4.9.8

安装(单机版测试)

修改bin/runserver.sh

conf 复制代码
JAVA_OPT="-server"

修改bin/runbroker.sh

conf 复制代码
JAVA_OPT="-server"

修改bin/tools.sh

conf 复制代码
JAVA_OPT="-server"

新增conf/seckill-broker.conf

conf 复制代码
# Broker 集群名称(单机版可随便写)
brokerClusterName = DefaultCluster
# Broker 名称(单机版唯一)
brokerName = broker-a
# Broker ID(0 表示 Master,单机版只有 Master)
brokerId = 0
# NameServer 地址(本机地址,若远程访问填外网 IP)
namesrvAddr = 0.0.0.0:9876
# Broker 监听地址(0.0.0.0 允许所有IP访问)
listenPort = 10911
# 存储路径(秒杀消息存储目录)
storePathRootDir = /usr/local/rocketmq-4.9.8/store
storePathCommitLog = /usr/local/rocketmq-4.9.8/store/commitlog
storePathConsumeQueue = /usr/local/rocketmq-4.9.8/store/consumequeue
storePathIndex = /usr/local/rocketmq-4.9.8/store/index
# 消息存储时间(秒杀消息保留 72 小时,避免占满磁盘)
fileReservedTime = 72
# 秒杀场景:异步刷盘(提升写入性能,牺牲少量可靠性)
flushDiskType = ASYNC_FLUSH
# 允许自动创建 Topic(秒杀系统无需提前创建 Topic)
autoCreateTopicEnable = true
# 批量消息阈值(适配秒杀批量发送)
defaultMessageQueueNums = 8

执行命令

shell 复制代码
cd /usr/local/rocketmq-4.9.8
mkdir -p logs
mkdir -p store

启动命令

shell 复制代码
# 1. 启动 NameServer(后台运行)
nohup sh bin/mqnamesrv > logs/namesrv.log 2>&1 &

# 2. 启动 Broker(指定自定义配置文件)
nohup sh bin/mqbroker -c conf/seckill-broker.conf > logs/broker.log 2>&1 &

# 3. 检查进程是否启动成功
jps
# 正常输出:
# xxx NamesrvStartup
# xxx BrokerStartup

其他

测试

shell 复制代码
# 1. 设置 NameServer 环境变量
export NAMESRV_ADDR=127.0.0.1:9876

# 2. 发送测试消息(模拟秒杀成功消息)
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 输出 "SendResult [sendStatus=SEND_OK, msgId=xxx]" 即为成功

# 3. 消费测试消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
# 输出 "ConsumeMessageThread_%d Receive New Messages: [xxx]" 即为成功

Topic 配置

shell 复制代码
sh bin/mqadmin updateTopic -n 127.0.0.1:9876 -t seckill_success_topic -c DefaultCluster
sh bin/mqadmin updateTopic -n 127.0.0.1:9876 -t seckill_cancel_topic -c DefaultCluster

常用运维命令

shell 复制代码
# 1. 停止 RocketMQ
sh bin/mqshutdown broker
sh bin/mqshutdown namesrv

# 2. 查看 Broker 状态
sh bin/mqadmin brokerStatus -n 127.0.0.1:9876 -b 192.168.1.106:10911

# 3. 查看 Topic 状态
sh bin/mqadmin topicStatus -n 127.0.0.1:9876 -t seckill_success_topic

# 4. 查看消息堆积(秒杀场景重点监控)
sh bin/mqadmin consumerProgress -n 127.0.0.1:9876 -g seckill-consumer-group
相关推荐
武子康21 小时前
Java-221 RocketMQ 消息存储核心原理:CommitLog、ConsumerQueue、IndexFile 与消息过滤机制
java·大数据·分布式·消息队列·rabbitmq·rocketmq·java-rocketmq
Thanks_ks2 天前
消息队列的进阶修炼:从 “不可靠交付” 到 “分布式最终一致性”
消息队列·rabbitmq·rocketmq·分布式事务·微服务架构·分布式系统·最终一致性
Apache RocketMQ3 天前
RocketMQ 源码解析——Controller 高可用切换架构
架构·rocketmq·java-rocketmq
Apache RocketMQ3 天前
Apache RocketMQ 5.0 架构解析:如何基于云原生架构支撑多元化场景
云原生·架构·apache·rocketmq·java-rocketmq
HEADKON3 天前
司拉德帕Seladelpar对比熊去氧胆酸在原发性胆汁性胆管炎中的碱性磷酸酶降低幅度
rocketmq
heimeiyingwang4 天前
【架构实战】RocketMQ实战:分布式消息中间件
分布式·架构·rocketmq
电魂泡哥5 天前
RocketMq是CP模型还是AP模型
rocketmq
Apache RocketMQ6 天前
RocketMQ源码解析——秒级定时消息介绍
java·云原生·消息队列·rocketmq·java-rocketmq
zkkkkkkkkkkkkk6 天前
python使用celery实现异步任务
redis·python·rabbitmq·rocketmq
江湖中的阿龙6 天前
消息队列核心面试题详解|RocketMQ深度剖析,含选型、可靠性、顺序性、幂等、积压、高可用、事务消息
rocketmq