一、官网下载 RocketMQ
RocketMQ 官网:https://rocketmq.apache.org/
这里我选择的4.9.4版本
二、安装RocketMQ
下载安装包后,将安装包上传到 linux
然后创建安装目录
mkdir -p /usr/local/rocketmq
将安装包解压到新的安装目录
unzip -d /usr/local/rocketmq rocketmq-all-4.9.4-bin-release.zip
如果没有安装 unzip,可以执行下面命令安装
yum install -y unzip zip
进入 rocketmq 安装目录
cd /usr/local/rocketmq/
重命名
mv rocketmq-all-4.9.4-bin-release apache-rocketmq-4.9.4
创建存放数据的目录
cd apache-rocketmq-4.9.4
mkdir -p store store/commitlog store/consumequeue
进入conf目录
cd conf
编辑 broker.conf 文件
vi broker.conf
在 broker.conf 文件中配置如下内容,直接覆盖即可
# 所属集群名称,可自定义,同一集群内的Broker名称需保持一致
brokerClusterName = DefaultCluster
# Broker名称,单机部署时可随意命名,但需保证唯一性,用于区分不同的Broker实例
brokerName = broker-a
# Broker的角色和ID,0表示Master,大于0表示Slave,单机部署时一般设置为0
brokerId = 0
deleteWhen = 04
# NameServer的地址,多个地址用分号分隔,单机部署时一般为本地地址和端口
namesrvAddr = 127.0.0.1:9876
# Broker监听的IP地址,设置为本地回环地址或服务器的实际IP地址
brokerIP1 = 127.0.0.1
# Broker监听的端口号,默认是10911,可根据需要修改
listenPort = 10911
# 存储根目录,用于存储消息数据、索引等文件,需确保该目录有足够的磁盘空间
storePathRootDir = /usr/local/rocketmq/apache-rocketmq-4.9.4/store
# commitLog存储路径,用于存储消息的物理文件
storePathCommitLog = /usr/local/rocketmq/apache-rocketmq-4.9.4/store/commitlog
# 消费队列存储路径,用于存储消息的消费队列信息
storePathConsumeQueue = /usr/local/rocketmq/apache-rocketmq-4.9.4/store/consumequeue
# 消息索引存储路径,用于存储消息的索引信息,方便快速查询消息
storePathIndex = /usr/local/rocketmq/apache-rocketmq-4.9.4/store/index
# 日志文件的存储路径,可根据实际情况修改
logPath = /usr/local/rocketmq/logs
# 日志文件名,可自定义
logFileName = broker.log
# 同步刷盘还是异步刷盘,ASYNC_FLUSH表示异步刷盘,SYNC_FLUSH表示同步刷盘,异步刷盘性能更高,但可能会有少量消息丢失风险
flushDiskType = ASYNC_FLUSH
# 主从同步策略,ASYNC_MASTER表示异步复制,SYNC_MASTER表示同步复制,单机部署一般使用异步复制即可
brokerRole = ASYNC_MASTER
# 消息存储文件的保留时间,单位为小时,默认值为72小时,可根据磁盘空间和数据保留需求调整
fileReservedTime = 48
# 当磁盘使用空间达到该比例时,Broker会拒绝接收新消息,默认值为88%,可根据磁盘容量调整
diskMaxUsedSpaceRatio = 88
# 自动创建Topic时的默认队列数,默认值为4,可根据业务需求调整
defaultTopicQueueNums = 4
# 是否允许Broker自动创建Topic,线下测试环境可开启,线上生产环境建议关闭
autoCreateTopicEnable = true
# 是否允许Broker自动创建订阅组,线下测试环境可开启,线上生产环境建议关闭
autoCreateSubscriptionGroup = true
# 限制的消息大小,默认值为128k,可根据实际消息大小调整
maxMessageSize = 131072
# 是否开启消息轨迹功能,默认值为false,可根据是否需要跟踪消息轨迹来设置
traceTopicEnable = false
修改内存大小(这步不是必须的,如果你的机器内存足够,可以跳过这步,我的机器内存只有4g,因此需要修改内存大小)
进入 bin 目录
cd /usr/local/rocketmq/apache-rocketmq-4.9.4/bin
编辑 runbroker.sh 文件和 runserver.sh 文件,修改内存大小
编辑 runbroker.sh 文件,将 8g 修改为 512m
vi runbroker.sh
修改后
vi runserver.sh
修改后
最后记得要开放防火墙9876和10911端口
firewall-cmd --zone=public --add-port=9876/tcp --permanent
firewall-cmd --zone=public --add-port=10911/tcp --permanent
更新防火墙规则(无需断开连接,动态添加规则)
firewall-cmd --reload
三、启动rocketMQ
在 bin 目录下,执行下面命令
启动nameserver
nohup sh mqnamesrv &
指定配置文件并启动 broke
nohup sh mqbroker -c /usr/local/rocketmq/apache-rocketmq-4.9.4/conf/broker.conf &
四、发送/接收消息测试
发送消息
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
接收消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
五、需要关闭Server的话
cd /usr/local/rocketmq/apache-rocketmq-4.9.4
sh bin/mqshutdown broker
sh bin/mqshutdown namesrv