💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## 1. 下载安装 ### 1.1 下载 > 创建用户 ~~~ adduser rocket ~~~ http://rocketmq.apache.org/release_notes/release-notes-4.2.0/ ~~~ unzip rocketmq-all-4.2.0-bin-release.zip ~~~ ### 1.2 修改broker启动参数(内存) ~~~ vim runbroker.sh # 根据服务器调整,如果实际内存小于设置的内存,启动失败,做以下修改 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4m" # 因为我的服务器内存才1G,所以修改小一点,否则无法启动 JAVA_OPT="${JAVA_OPT} -server -Xms200m -Xmx200m -Xmn100m" ~~~ ### 1.3 修改环境变量 1. 修改配置文件 `vim /etc/profile` ~~~ export ROCKETMQ_HOME=/home/rocket/rocketmq export PATH=$PATH:$ROCKETMQ_HOME/bin ~~~ 2. 刷新配置文件 ~~~ source /etc/profile ~~~ ### 1.4 修改brokerIP地址 > 修改rockeMQ安装目录/conf/broker.conf,注意这里一定要修改! > 如果用的是虚拟机,就要改成虚拟机的ip地址 > 同理如果是阿里云或者其他的服务器就要指明对应的外网ip地址 `vim broker.conf` > 添加IP地址绑定,在需要外网访问的情况下,绑定外网ip ~~~ brokerIP1=192.168.56.130 # 指定nameserver,有多个用分号隔开 namesrvAddr=192.168.56.131:9876;localhost:9876 brokerName=broker-a brokerClusterName=Dev-Cluster brokerId=0 # broker名称相同时,0表示master,大于零表示slave brokerRole=ASYNC_MASTER # master同步,slave时不用同步,及设置为SLAVE ~~~ ## 2.启动服务 ### 2.1 Start Name Server ~~~ nohup mqnamesrv & tail -f ~/logs/rocketmqlogs/namesrv.log # 提示成功 2018-04-24 15:26:08 INFO main - The Name Server boot success. serializeType=JSON ~~~ ### 2.2 Start Broker ~~~ nohup mqbroker -c $HOME/conf/broker.conf > /dev/null 2>&1 & tail -f ~/logs/rocketmqlogs/broker.log # 提示成功 2018-04-24 15:27:16 INFO BrokerControllerScheduledThread1 - register broker to name server localhost:9876 OK ~~~ > -n localhost:9876 : 指定nameserver > -c $HOME/conf/broker.conf :指定broker配置文件 ## 3. 停止服务 ### 3.1 停止broker ~~~ mqshutdown broker The mqbroker(36695) is running... Send shutdown request to mqbroker(36695) OK ~~~ ### 3.1 停止server ~~~ mqshutdown namesrv The mqnamesrv(36664) is running... Send shutdown request to mqnamesrv(36664) OK ~~~ ## 4. 页面监控安装rocketmq-console > 页面监控功能是GitHub上对rocketMQ使用上的扩展 ### 4.1 下载 https://github.com/apache/rocketmq-externals ### 4.2 编译jar > 命令行进入:rocketmq-externals-master\rocketmq-console目录下,执行打包命令 ~~~ mvn clean package -Dmaven.test.skip=true ~~~ > 此时,target目录下生成rocketmq-console-ng-1.0.0.jar文件 ### 4.3 运行界面程序 ~~~ nohup java -jar rocketmq-console-ng-1.0.0.jar > ./rocketconsole.log 2>&1 & ~~~ ### 4.4 配置nameserver 输入nameserver ![](https://box.kancloud.cn/91e2f1dec1bf64d9e1cb55d26faf0b8a_599x312.png) **输入后,按回车才能保存 !!!!**,***关掉IsUseVIPChannel*** ![](https://box.kancloud.cn/0e90f787b7e521475abcb23f009808ff_1118x390.png) 在按更新 ### 4.5 使用说明 #### 4.5.1 更换语言 右上角可以更换页面显示语言 ![](https://box.kancloud.cn/60f71ebf20d91a2394a965a610d3022f_445x303.png) #### 4.5.2 数据概览(驾驶舱) ![](https://box.kancloud.cn/9acac6d6405efb838885d8548f5740ac_1831x946.png) #### 4.5.3 nameserver配置 > 需要获取整个RocketMQ的信息,就要配置信息获取的源头(nameservers) > 这里的UseVIPChannel要关闭 ![](https://box.kancloud.cn/790cc1f3df07d1e3555600256c27ec7a_904x315.png) #### 4.5.4 集群管理 ![](https://box.kancloud.cn/890fc92798053a6250b1472202c8b3a7_1894x243.png) #### 4.5.5 主题(topic)管理 会对所有rocketmq的topic进行管理 ![](https://box.kancloud.cn/ed2a430fca8caef6808ea90adef7c0a3_1854x864.png) **1. topic信息管理** 点击某一topic的“状态”,如下图,可以看到topic有四个队列,其中队列0、2、3有数据,offset分别是75、1、86(offset可以理解为消息存储位置的偏移量) ![](https://box.kancloud.cn/b13165084e00fe0349656008144ae96e_988x369.png) **2. 消费管理** 点击某一topic的“CONSUMER管理”,如下图所示,其中有两个消费组对该topic进行了消费,其中order_Consumer组仍有未消费完的数据,数据偏移量差了5 ![](https://box.kancloud.cn/c7d39f4cd92f45d37017174969717549_972x740.png) 此时启动一个consumer去消费这个topic,如下图,消费的偏移量和数据的偏移量相同,说明这个topic被这个消费组完全消费了。 ![](https://box.kancloud.cn/e921a65b41ccc874700fbc63cf527362_959x767.png) ## 5. 服务脚本 没有检查环境变量,因为前边配置环境变量,直接把脚本放在RocketMQ的安装目录的bin下即可 ~~~ #!/bin/bash set -x HOME="/home/rocket/rocketmq" start_broker(){ $(nohup mqbroker -n localhost:9876 -c $HOME/conf/broker.conf > /dev/null 2>&1 &) if [ $? -eq 0 ];then echo "broker started!" else echo "broker start faild!" fi } stop_broker(){ $(mqshutdown broker) > /dev/null 2>&1 echo "broker stopped!" } start_nameserver(){ $(nohup mqnamesrv > /dev/null 2>&1 &) if [ $? -eq 0 ];then echo "nameserver started!" else echo "nameserver start faild!" fi } stop_nameserver(){ $(mqshutdown namesrv) > /dev/null 2>&1 echo "nameserver stop!" } case $1 in broker) case $2 in start) start_broker ;; stop) stop_broker ;; restart) stop_broker start_broker ;; esac;; nameserver) case $2 in start) start_nameserver ;; stop) stop_nameserver ;; restart) stop_broker start_broker ;; esac ;; *) echo "Useage:$0 nameserver|broker start|stop|restart" ;; esac ~~~