1. 下载 解压 重命名 自行操作
wget https://archive.apache.org/dist/rocketmq/4.6.1/rocketmq-all-4.6.1-bin-release.zip
2. 安装
unzip rocketmq-all-4.6.1-bin-release.zip
#给他一个位置
mv rocketmq-all-4.6.1-bin-release /usr/local/rocketmq
3. 环境变量
echo 'export ROCKETMQ_HOME=/usr/local/rocketmq' >> /etc/profile
echo 'export PATH=$ROCKETMQ_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
4. 修改默认启动配置
RocketMQ默认配置要求很高,开始启动前需要先修改这些参数,否则的话,我们很有可能会遇到内存分配或者不够的问题(memory alloc failed):
4.1 bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
4.2 bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
4.3 bin/tools.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
5. 修改 broker 配置
broker的配置文件为conf/broker.conf,参考内容如下:
# 所属集群名字(同一主从下: Master 和 Slave 名称要一致)
brokerClusterName = DefaultCluster
# Broker 名字,注意此处不同的配置文件填写的不一样
brokerName = broker-a
# 0 表示 Master,> 0 表示 Slave
brokerId = 0
# Broker 对外服务的监听端口, 如果一台机器上启动了多个Broker,则要设置不同的端口号,避免冲突
listenPort = 10911
# nameServer地址,如果nameServer是多台集群的话,就用分号分割,比如
# namesrvAddr=192.168.0.1:9876;192.168.0.2:9876
namesrvAddr = 127.0.0.1:9876
# 是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable = false
# 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup = false
# 与fileReservedTime参数呼应,表明在几点做消息删除动作,默认值04表示凌晨4点
deleteWhen = 04
# 在磁盘上保存消息的时长,单位是小时,自动删除超时的消息
fileReservedTime = 48
# brokerRole有3种:SYNC_MASTER、ASYNC_MASTER、SLAVE
# 关键词 SYNC 和 ASYNC 表示 Master 和 Slave 之间同步消息的机制
# SYNC 的意思是当 Slave 和 Master 消息同步完成后,再返回发送成功的状态
brokerRole = ASYNC_MASTER
# 刷盘方式 ASYNC_FLUSH 异步刷盘; SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH
6. 启动
6.1 运行 namesrv 节点
nohup sh mqnamesrv &
6.2 运行 broker 节点
nohup sh mqbroker -n localhost:9876 &
7. 停止服务
sh mqshutdown broker
sh mqshutdown namesrv
8. 部署RocketMQ Console
#照着文档做就可以
https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console
修改配置:
#修改resources下的配置
rocketmq.config.namesrvAddr=localhost:9876
rocketmq.config.isVIPChannel=false
#正常启动开放端口就能访问了
网友评论