安装RocketMQ
1.下载RocketMQ
wget https://github.com/apache/rocketmq/archive/rocketmq-all-4.7.0.tar.gz
2.解压文件到 /usr/local 目录下
tar -zxvf rocketmq-all-4.7.0.tar.gz -C /usr/local
3.重命名为 rocketmq-4.7.0
#进入/usr/local目录
cd /usr/local
#把文件命名为rocketmq-4.7.0,除了看着顺眼,没啥作用
mv rocketmq-rocketmq-all-4.7.0 rocketmq-4.7.0
4.进入rocketmq-4.7.0目录,编译项目
#进入rocketmq-4.7.0目录
cd rocketmq-4.7.0
#开始编译,注意maven环境要搭建好
mvn -Prelease-all -DskipTests clean install -U
5.移动编译好的文件夹,方便以后进入
mv /usr/local/rocketMQ/rocketmq-4.7.0/distribution/target/rocketmq-4.7.0/rocketmq-4.7.0 /usr/local/rocketMQ/rocketmq-4.7
配置ACL
#使用acl必须在服务端开启此功能,打开Broker配置文件,修改aclEnable = true开启此功能
vim /usr/local/rocketMQ/rocketmq-4.7/conf/broker.conf
#修改acl配置文件
vim /usr/local/rocketMQ/rocketmq-4.7/conf/plain_acl.yml
下面我们介绍一下plain_acl.yml文件中相关的参数含义及使用
字段 | 取值 | 含义 |
---|---|---|
globalWhiteRemoteAddresses | ;192.168..*;192.168.0.1 | 全局IP白名单 |
accessKey | 字符串 | Access Key 用户名 |
secretKey | 字符串 | Secret Key 密码 |
whiteRemoteAddress | ;192.168..*;192.168.0.1 | 用户IP白名单 |
admin | true;false | 是否管理员账户 |
defaultTopicPerm | DENY;PUB;SUB;PUB | SUB |
defaultGroupPerm | DENY;PUB;SUB;PUB | SUB |
topicPerms | topic=权限 | 各个Topic的权限 |
groupPerms | group=权限 | 各个ConsumerGroup的权限 |
权限标识符的含义
权限 | 含义 |
---|---|
DENY | 拒绝 |
ANY | PUB 或者 SUB 权限 |
PUB | 发送权限 |
SUB | 订阅权限 |
启动服务
1.进入启动服务的文件夹
cd /usr/local/rocketMQ/rocketmq-4.7/bin/
添加rocketmq环境变量配置,执行vim /etc/profile
#请确认好路径,别填错了
export rocketmq=/usr/local/rocketMQ/rocketmq-4.7
export PATH=$PATH:$rocketmq/bin
#配置服务地址
#export NAMESRV_ADDR=127.0.0.1:9876
刷新下配置,让配置生效:
source /etc/profile
2.可以对runserver.sh和runbroker.sh进行修,降低配置
#进入bin目录
cd /usr/local/rocketMQ/rocketmq-4.7/bin/
#编辑runserver.sh
vim runserver.sh
#找到JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
#修改成可接受范围
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx521m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
#编辑runbroker.sh
vim runbroker.sh
#找到JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
#修改成可接受范围
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"
3.启动服务
#新建logs文件
mkdir /usr/local/rocketMQ/rocketmq-4.7/logs
#启动nameserver
nohup sh bin/mqnamesrv >/usr/local/rocketMQ/rocketmq-4.7/logs/mqnamesrv.log 2>&1 &
#启动rroker
nohup sh bin/mqbroker -n 127.0.0.1:9876 autoCreateTopicEnable=true -c /usr/local/rocketMQ/rocketmq-4.7/conf/broker.conf &>/usr/local/rocketMQ/rocketmq-4.7/logs/broker.log 2>&1 &
4.执行测试
建议在两个窗口分别启动以下两个脚本,便于观测。
# 生产者生产消息
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
# 消费者消费消息
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
5.关闭服务
sh mqshutdown broker
sh mqshutdown namesrv
常用命令
查看集群情况 ./mqadmin clusterList -n 127.0.0.1:9876
查看 broker 状态 ./mqadmin brokerStatus -n 127.0.0.1:9876 -b 172.20.1.138:10911 (注意换成你的 broker 地址)
查看 topic 列表 ./mqadmin topicList -n 127.0.0.1:9876
查看 topic 状态 ./mqadmin topicStatus -n 127.0.0.1:9876 -t MyTopic (换成你想查询的 topic)
查看 topic 路由 ./mqadmin topicRoute -n 127.0.0.1:9876 -t MyTopic
可视化管理页面安装
1.下载代码
git clone https://github.com/apache/rocketmq-externals
2.修改配置文件
#进入文件配置目录
cd /usr/local/rocketmq/rocketmq-externals/rocketmq-console/src/main/resources
#编辑文本
vim application.properties
#修改如下配置
server.port=8080
#rocket服务地址
rocketmq.config.namesrvAddr=127.0.0.1:9876
#数据路径,自己配置
rocketmq.config.dataPath=/tmp/rocketmq-console/data
3.使用maven打包
cd /usr/local/rocketmq/rocketmq-externals/rocketmq-console
mvn clean package -Dmaven.test.skip=true
4.运行
java -jar rocketmq-console-ng-1.0.1.jar --server.port=8180 --rocketmq.config.namesrvAddr=127.0.0.1:9876
5.访问网页
我的是 http:47...*:8080