Linux centos 7.6安装RocketMQ4.2.0及控制台
准备环境 |
【1】环境准备
RocketMQ依赖于java及maven,所以要先安装。
java安装参考:https://www.cnblogs.com/yyee/p/14570661.html
maven安装参考:https://www.cnblogs.com/yyee/p/14583297.html
下载RocketMQ |
【2】下载Rocketmq
rocketmq各版本下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/
目前最新牌本4.8.0,一个源码下载包,一个编译好的二进制下载包,使用wget下载二进制版本:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.8.0/rocketmq-all-4.8.0-bin-release.zip
下载 源码版本:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.8.0/rocketmq-all-4.8.0-source-release.zip
进去下载4.8.0
安装RocketMQ |
【3】解压
unzip -d /opt/ /tools/rocketmq/rocketmq-all-4.8.0-bin-release.zip
【4】使用maven打包
我这里是下载编译好的二进制版本,所以不需要打包。
如果下载的是RocketMQ源码就要打包,打包命令如下:
cd /opt/rocketmq-all-4.8.0-bin-release/ mvn -Prelease-all -DskipTests clean install -U cd distribution/target/apache-rocketmq
【5】修改配置
RocketMQ默认需要8G的内存,我用的是虚拟机,哪有 8G的内存,所以把内存配置改一下,需要修改两个文件。
(1)修改bin/runserver.sh文件
vi bin/runserver.sh #找到这一句 JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" #改成你想要的配置 JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
(修改前)
(修改后)
(2)修改bin/runbroker.sh
vi bin/runbroker.sh #找到这一句 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" #修改成你想要的配置 JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"
(修改前)
(修改后)
如果不修改默认的内存配置,启动mqnameserver或broker的时候会输出错误:
Native memory allocation (malloc) failed to allocate 8589934592 bytes for committing reserved memory.
因为分配的内存超过了虚拟机的内存。
【6】配置环境变量
vim /etc/profile # 将如下配置加到/etc/profile文件的最后一行 export NAMESRV_ADDR=127.0.0.1:9876
【7】启动Name Server
#启动name server cd /opt/rocketmq-all-4.8.0-bin-release/bin nohup sh mqnamesrv & #查看启动日志 cat nohup.out #或者查看日志 tail -f ~/logs/rocketmqlogs/namesrv.log
有输出 The Name Server boot success. serializeType=JSON 这一行信息,表示启动成功。
Name Server的默认端口为9876,运行sh bin/mqnamesrv -p可查看Name Server的配置项,并可通过-c namesrv.conf方式指定配置文件启动;
#指定配置文件启动 nohup sh bin/mqnamesrv -c namesrv.conf >/dev/null 2>&1 &
【8】启动Broker
#启动mqbroker cd /opt/rocketmq-all-4.8.0-bin-release/bin nohup sh mqbroker -n localhost:9876 & #查看启动日志 cat nohup.out #或者查看日志 tail -f ~/logs/rocketmqlogs/broker.log
有输出 The broker[dfc200, 10.10.61.200:10911] boot success. serializeType=JSON and name server is localhost:9876 这一句信息表示启动成功。
可以通过下面的命令查看 RocketMQ进程信息
ps -aux | grep rocketmq
ps -ef | grep rocketmq
【9】 执行测试
建议分别打开两个不同的窗口用于生产者与消费者。
# 发送消息 # 1. 在发送/接收消息之前,我们需要告诉客户名称服务器的位置,RocketMQ 提供了多种方法来实现这一点。(默认可以不设置) export NAMESRV_ADDR=localhost:9876 # 2.使用安装包的Demo发送消息 sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer # 接收消息 # 1.设置环境变量(默认可以不设置) export NAMESRV_ADDR=localhost:9876 # 2.接收消息 sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
【10】查看rockemq的端口9876是否监听
netstat -ano |grep 9876
【11】关闭服务,常用命令
sh bin/mqshutdown broker //停止 broker sh bin/mqshutdown namesrv //停止 nameserver ./mqadmin clusterList -n 127.0.0.1:9876 #查看集群情况 ./mqadmin brokerStatus -n 127.0.0.1:9876 -b 10.10.61.200:10911 #查看 broker 状态 (注意换成你的 broker 地址) ./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 #查看 topic 路由
安装RocketMQ控制台 |
【12】安装git
查看git是否安装
git -version
如果没有安装,先安装git
sudo yum -y install git
从GitHub上克隆一个RocketMQ控制台。
cd /tools git clone https://github.com/apache/rocketmq-externals.git
修改rocketmq控制台端口,默认端口为8080,如果想用其它端口可以根据需求修改。
#进入到控制台项目的文件夹下rocketmq-console cd /opt/rocketmq-externals/rocketmq-console vi src/main/resources/application.properties
修改你想要监听的端口,默认端口为8080
#监听端口 server.port=8080 #rocketmq服务器地址,如果有多个地址,地址间用分号隔开rocketmq.config.namesrevAddr=10.10.61.200:9876;10.10.61.201:9876 rocketmq.config.namesrevAddr=10.10.61.200:9876 #isVIPChannel设为false rocketmq.config.isVIPChannel=false #数据目录可以自己定义 rocketmq.config.dataPath=/tmp/rocketmq-console/data
添加防火墙端口 9876与8080,可以让外面访问。
firewall-cmd --add-port=8080/tcp --permanent firewall-cmd --add-port=9876/tcp --permanent
用maven编译jar包,编译需要较长时间,请耐心等待。然后运行jar文件。
mvn clean package -Dmaven.test.skip=true java -jar target/rocketmq-console-ng-2.0.0.jar --rocketmq.config.namesrvAddr=‘10.10.61.169:9876’
启动成功会输出如下信息:
然后在浏览器地址栏输入 10.10.61.200:8080查看控制台,访问控制台默认不需要密码。