二进制安装RocketMQ

安装jdk和maven

# 解压jdk到指定目录
$ tar xf jdk-8u211-linux-x64.tar  -C  /app
#创建软链接
$ cd /app
$ ln -s jdk1.8.0_211/ java
#声明Java环境变量
$ cat >> /etc/profile.d/jdk.sh <<-EOF
#!/bin/bash
export JAVA_HOME=/app/java
export PATH=\$PATH:\$JAVA_HOME/bin
EOF
#重新加载配置文件
$ source /etc/profile.d/jdk.sh 
 
#测试java
$ java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

#解压maven
$ tar xf  apache-maven-3.9.6-bin.tar -C  /app/
$ mv apache-maven-3.9.6-bin.tar maven

#声明Maven环境变量
$ cat >> /etc/profile.d/mvn.sh <<-EOF
#!/bin/bash
export MVN_HOME=/app/maven
export PATH=\$PATH:\$MVN_HOME/bin
EOF

#重新加载配置文件
$ source /etc/profile.d/mvn.sh
 
#测试maven
$  mvn -version
Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
Maven home: /app/maven
Java version: 1.8.0_211, vendor: Oracle Corporation, runtime: /app/jdk1.8.0_211/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

安装RocketMQ

$ unzip rocketmq-all-5.3.2-source-release.zip
$ mv  ./rocketmq-all-5.3.2-source-release  /app/rocketmq
$ cd /app/rocketmq/rocketmq-all-5.3.2-source-release

#编译安装rocketmq
$ mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U

启动NameServer

#启动顺序
#启动namesercer
#启动broker


$ cd distribution/target/rocketmq-5.3.2/rocketmq-5.3.2
#指定Java环境(临时)
$ export JAVA_HOME=/app/java

# 对该用户编辑配置文件 (~/.bashrc 或 ~/.profile)
#echo "export JAVA_HOME=/app/java" >> ~/.bashrc
#echo "export ROCKETMQ_HOME=/app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/target/rocketmq-5.4.0/rocketmq-5.4.0" >> ~/.bashrc
#让配置立即生效
#source ~/.bashrc

#修改Java堆内存
$ export JAVA_OPT="-Xms256m -Xmx256m" #临时

$ vi  bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"改为 -Xms256m -Xmx256m 

#启动NameServer
$ cd bin
$ nohup ./mqnamesrv > ~/namesrv.log 2>&1 &

启动Broker+Proxy

#修改brokerJava堆内存
$ cd /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/target/rocketmq-5.4.0/rocketmq-5.4.0/bin

$ vi runbroker.sh
  JAVA_OPT="${JAVA_OPT} -Xmn128m
  JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m"
#启动
$ nohup sh ./mqbroker -n localhost:9876 --enable-proxy &
$ tail -f ~/logs/rocketmqlogs/proxy.log 

日志

#服务端日志 (NameServer & Broker)
默认存储在启动服务的用户主目录下,路径为 ~/logs/rocketmqlogs/
#日志代表哪一方面
namesrv.log:NameServer 模块日志,记录路由信息注册、心跳等。
broker.log:Broker 模块日志,记录消息收发、客户端连接等核心操作。
store.log:存储相关日志,记录消息落盘、索引构建等,对排查存储问题很有帮助。
rocketmq_client.log:记录连接到当前 Broker 的客户端行为
#修改日志文件路径可在 conf 目录下的 logback_namesrv.xml 和 logback_broker.xml 文件中,通过修改 LOG_HOME 变量来更改服务端的日志存储路径

#客户端日志
默认位置:默认存储在启动该 Java 应用的用户主目录下,路径同样为 ~/logs/rocketmqlogs/
rocketmq_client.log:这是客户端日志的主文件,包含消息发送、消费、重平衡等所有客户端行为。
可以在启动应用的 JVM 参数中,使用 -Drocketmq.client.logRoot=/your/log/path 来重定向客户端日志路径

Broker 核心日志
broker.log – Broker 主日志,记录 Broker 启动、关闭、配置加载、心跳等常规运行信息。
broker_default.log – 通常与 broker.log 类似,可能是不同日志级别或输出配置产生的副本,具体取决于 logback.xml 配置。
store.log – 消息存储相关日志,如消息追加、索引构建、刷盘、CommitLog 操作等。
storeerror.log – 存储层发生的错误日志(如磁盘满、文件损坏、写入失败)。
rocksdb.log – 若 Broker 使用了 RocksDB 作为 KV 存储(例如用于消息索引或消费进度),记录 RocksDB 内部日志。
root_store_rocksdbstore_LOG – RocksDB 存储引擎的详细运行日志,包含 SST 文件操作、Compaction、Flush 等。
root_store_rocksdbstore_LOG.old.xxx – 上述 RocksDB 日志的轮转旧文件。

NameServer 日志
namesrv.log – NameServer 主日志,记录路由注册、心跳处理、客户端请求等。
namesrv_default.log – 可能为 NameServer 的另一个日志输出(如不同级别或输出目标)。
namesrv_traffic.log – NameServer 流量日志,记录收到的请求来源、类型、耗时等网络流量相关信息。

安全与鉴权
auth_audit.log – 认证与授权审计日志,记录登录、权限校验、非法访问尝试等。

消息过滤与 Pop 消费
filter.log – 消息过滤相关日志(如 SQL92 过滤表达式执行情况、过滤错误)。
pop.log – Pop 消费模式(RocketMQ 5.x 的轻量级消费模式)的日志,记录 Pop 请求、确认、重试等。

锁与保护机制
lock.log – Broker 内部锁相关日志(如 rebalance 锁、消息锁、分布式锁竞争)。
protection.log – Broker 自我保护机制日志(如流量过载保护、拒绝请求、限流触发记录)。

事务消息
transaction.log – 事务消息状态管理日志,记录事务准备、回查、提交/回滚过程。

统计与监控
stats.log – Broker 或 Proxy 的统计信息(如消息吞吐量、堆积量、TPS 等周期性输出)。
watermark.log – 水位日志,通常记录磁盘空间、内存使用、消息积压等阈值告警信息。
commercial.log – 商业版功能相关日志(如流量统计、计费、License 校验),开源版可能为空或仅含基础信息。


remoting.log – 远程通信层日志(Netty 事件、连接建立/断开、解码异常等)。

关闭RocketMQ

#关闭顺序
#关闭生产者、消费者
#关闭broker
#关闭nameserver

$ sh bin/mqshutdown broker
$ sh bin/mqshutdown namesrv

RocketMQ互为主从

#创建消息存储路径
$  mkdir -p /rockerMQ/store/master
mkdir -p /rockerMQ/store/master/commitlog
mkdir -p /rockerMQ/store/master/consumequeue
mkdir -p /rockerMQ/store/master/index
mkdir -p /rockerMQ/store/slave
mkdir -p /rockerMQ/store/slave/commitlog
mkdir -p /rockerMQ/store/slave/consumequeue
mkdir -p /rockerMQ/store/slave/index

#配置主机hosts
$ vi /etc/hosts
# nameserver
192.168.116.129 rocketmq-nameserver1
192.168.116.130 rocketmq-nameserver2
# broker
192.168.116.129 rocketmq-master1
192.168.116.129 rocketmq-slave2
192.168.116.130 rocketmq-master2
192.168.116.130 rocketmq-slave1

修改配置文件

master1

$ vi /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-a.properties

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2: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=/rockerMQ/store/master
#commitLog 存储路径
storePathCommitLog=/rockerMQ/store/master/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/rockerMQ/store/master/consumequeue
#消息索引存储路径
storePathIndex=/rockerMQ/store/master/index
#checkpoint 文件存储路径
storeCheckpoint=/rockerMQ/store/checkpoint
#abort 文件存储路径
abortFile=/rockerMQ/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

slave2

$ vi /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-b-s.properties &

brokerClusterName=rocketmq-cluster
brokerName=broker-b
brokerId=1
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=11011
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/rockerMQ/store/slave
storePathCommitLog=/rockerMQ/store/slave/commitlog
storePathConsumeQueue=/rockerMQ/store/slave/consumequeue
storePathIndex=/rockerMQ/store/slave/index
storeCheckpoint=/rockerMQ/store/slave/checkpoint
abortFile=/rockerMQ/store/slave/abort
maxMessageSize=65536
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

master2

$vi /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-b.properties

brokerClusterName=rocketmq-cluster
brokerName=broker-b
brokerId=0
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/rockerMQ/store/slave
storePathCommitLog=/rockerMQ/store/slave/commitlog
storePathConsumeQueue=/rockerMQ/store/slave/consumequeue
storePathIndex=/rockerMQ/store/slave/index
storeCheckpoint=/rockerMQ/store/slave/checkpoint
abortFile=/rockerMQ/store/slave/abort
maxMessageSize=65536
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH

slave1

$ vi /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-a-s.properties

brokerClusterName=rocketmq-cluster
brokerName=broker-a
brokerId=1
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=11011
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/rockerMQ/store/master
storePathCommitLog=/rockerMQ/store/master/commitlog
storePathConsumeQueue=/rockerMQ/store/master/consumequeue
storePathIndex=/rockerMQ/store/master/index
storeCheckpoint=/rockerMQ/store/checkpoint
abortFile=/rockerMQ/store/abort
maxMessageSize=65536
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

启动NameServer和Broker

#两台主机都操作
$ cd /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/target/rocketmq-5.4.0/rocketmq-5.4.0/bin
$ nohup sh mqnamesrv &
#192.168.116.129
$  nohup sh mqbroker -c /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-a.properties &
$ nohup sh mqbroker -c /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-b-s.properties &
#验证
$ jps
2096 BrokerStartup
1859 BrokerStartup
1770 NamesrvStartup
2379 Jps

# 192.168.116.130
$ nohup sh mqbroker -c /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-a-s.properties &
$ nohup sh mqbroker -c /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-b.properties &
#验证
$ jps
5410 BrokerStartup
5171 BrokerStartup
5563 Jps
4415 NamesrvStartup

#查看集群主从
$ sh mqadmin clusterList -n 192.168.116.130:9876

RocketMQ一主两从

#创建消息存储路径
$  mkdir -p /rockerMQ/store/master
mkdir -p /rockerMQ/store/master/commitlog
mkdir -p /rockerMQ/store/master/consumequeue
mkdir -p /rockerMQ/store/master/index
mkdir -p /rockerMQ/store/slave
mkdir -p /rockerMQ/store/slave/commitlog
mkdir -p /rockerMQ/store/slave/consumequeue
mkdir -p /rockerMQ/store/slave/index

#配置主机hosts
$ vi /etc/hosts
192.168.116.129 rocketmq-nameserver1
192.168.116.130 rocketmq-nameserver2
192.169.116.131 rocketmq-nameserver3
192.168.116.129 rocketmq-master
192.168.116.130 rocketmq-slave1
192.168.116.131 rocketmq-slave2

修改配置文件

master

$ vi  /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-a.properties
brokerClusterName=rocket-cluster
brokerName=broker-a
brokerId=0
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmq-nameserver3:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/rockerMQ/store/slave
storePathCommitLog=/rockerMQ/store/slave/commitlog
storePathConsumeQueue=/rockerMQ/store/slave/consumequeue
storePathIndex=/rockerMQ/store/slave/index
storeCheckpoint=/rockerMQ/store/slave/checkpoint
abortFile=/rockerMQ/store/slave/abort
maxMessageSize=65536
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH

slave1

$ vi /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-a-s.properties
brokerClusterName=rocket-cluster
brokerName=broker-a
brokerId=1
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmq-nameserver3:9875
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/rockerMQ/store/master
storePathCommitLog=/rockerMQ/store/master/commitlog
storePathConsumeQueue=/rockerMQ/store/master/consumequeue
storePathIndex=/rockerMQ/store/master/index
storeCheckpoint=/rockerMQ/store/checkpoint
abortFile=/rockerMQ/store/abort
maxMessageSize=65536
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

slave2

$ vi  /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-a-s.properties
brokerClusterName=rocket-cluster
brokerName=broker-a
brokerId=1
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmq-nameserver3:9875
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/rockerMQ/store/master
storePathCommitLog=/rockerMQ/store/master/commitlog
storePathConsumeQueue=/rockerMQ/store/master/consumequeue
storePathIndex=/rockerMQ/store/master/index
storeCheckpoint=/rockerMQ/store/checkpoint
abortFile=/rockerMQ/store/abort
maxMessageSize=65536
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

启动NameServer和Broker

#master
$cd /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/target/rocketmq-5.4.0/rocketmq-5.4.0/bin
$ nohup sh mqnamesrv &
$ nohup sh mqbroker -c /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-a.properties &

#slave1
$cd /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/target/rocketmq-5.4.0/rocketmq-5.4.0/bin
$ nohup sh mqnamesrv &
$nohup sh mqbroker -c  /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-a-s.properties &

#slave2
$cd /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/target/rocketmq-5.4.0/rocketmq-5.4.0/bin
$ nohup sh mqnamesrv &
$nohup sh mqbroker -c  /app/rocketmq/rocketmq-all-5.4.0-source-release/distribution/conf/2m-2s-sync/broker-a-s.properties &


#查看集群状态
$ sh mqadmin  clusterList -n 192.168.116.130:9876

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐