官网: https://rocketmq.apache.org
下载编译好的版本
wget https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.9.2/rocketmq-all-4.9.2-bin-release.zip
解压
tar -zxvf rocketmq-all-4.9.2-bin-release.zip
进入解压后的目录
cd rocketmq-4.9.2
修改配置文件
vim ./bin/runserver.sh
vim ./bin/runbroker.sh
修改 JVM 相关参数
推荐配置
-Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m
修改 broker 配置
vim ./conf/broker.conf
添加以下配置,以实现远程连接
nameserAddr=your_public_ip:9876
brokerIP1=your_public_ip
填写公网 ip/内网 IP
开放 RocketMQ 端口(centOS 7)
firewall-cmd --add-port={9876/tcp,10909/tcp,10911/tcp,10912/tcp} --zone=public --permanent
启动 nameServer 服务
nohup bin/mqnamesrv >/dev/null 2>&1 &
nameServer 服务日志
~/logs/rocketmqlogs/namesrv.log
nameServer 启动脚本
start_namesrv.sh
# !/bin/sh
# nameserver 启动脚本
ROCKET_MQ_PATH=/usr/rocketmq-4.9.2
nohup ${ROCKET_MQ_PATH}/bin/mqnamesrv -n localhost:9876 > /dev/null 2>&1 &
启动 broker 服务
nohup bin/mqbroker -n localhost:9876 >/dev/null 2>&1 &
broker 服务日志
~/logs/rocketmqlogs/broker.log
broker 启动脚本
start_broker.sh
# !/bin/sh
# broker 启动脚本
ROCKET_MQ_PATH=/usr/rocketmq-4.9.2
nohup ${ROCKET_MQ_PATH}/bin/mqbroker -n localhost:9876 -c ${ROCKET_MQ_PATH}/conf/broker.conf > /dev/null 2>&1 &
停止 nameServer 服务
./bin/mqshutdown namesrv
停止 broker 服务
./bin/mqshutdown broker
Apache RocketMQ with Spring Boot-Baeldung
注意事项:
RocketMQ 消息不消费的场景:
有两个 Consumer 类,使用相同的 groupName,不同的 topic
解决办法:
使用不同的 group,不同的 topic
设置访问密码
修改 broker 配置文件
vim ./conf/broker.conf
添加配置
aclEnable=true
修改权限配置文件
vim ./conf/plain_acl.yml
配置说明
配置参数 | 说明 | 示例 |
---|---|---|
globalWhiteRemoteAddresses | 全局白名单,支持多个 IP,如果为空,则表明不限制,即所有 ip 都可访问 | 192.168.2.* |
accessKey | 公钥,用户名 | 10.0.1-100.* |
secretKey | 私钥,密码 | |
whiteRemoteAddress | 白名单 IP | |
admin | 是否为管理员 | true,false |
defaultTopicPerm | 默认主题权限,DENY: 拒绝;SUB: 订阅;PUB: 发布;PUB|SUB: 发布和订阅 | PUB|SUB |
defaultGroupPerm | 默认组权限,参数同 defaultTopicPerm | SUB |
topicPerms | 指定主题的权限,参数同 defaultTopicPerm | SUB |
groupPerms | 注定组权限,参数同 defaultTopicPerm | SUB |
推荐参数配置:
如果部署的应用都在同一局域网内,则设置全局白名单为局域网的所有网段;如果需要外网访问,且 ip 不固定,则将白名单设置为空,即允许所有远程连接;
如果没有复杂业务和多用户操作,则只需要设置一个管理员用户就可以
globalWhiteRemoteAddresses:
accounts:
- accessKey: admin
secretKey: 12345abcde
whiteRemoteAddress:
admin: true
RocketMQ 控制台
下载源码,修改application.yml
配置,与安装的RocketMQ
信息保持一致
rocketmq:
config:
# if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, default localhost:9876
# configure multiple namesrv addresses to manage multiple different clusters
namesrvAddrs:
- 127.0.0.1:9876
- 127.0.0.2:9876
修改users.properties
配置,设置连接密码
# Define Admin
admin=admin,1
# Define Users
user1=user1
user2=user2
Windows 系统安装RocketMQ错误: 找不到或无法加载主类 Files\Java\jdk1.8.0_231\lib;D:\Program
将环境变量中的CLASSPATH修改为"CLASSPATH"即可