0. 引言
针对rocketMQ的学习,首当其冲的就是正确安装服务,所以我们今天来看linux下如何安装rocketmq及其控制台服务,并设置各个服务的开机自启
1. 安装
因为rocketmq是基于java的,所以需要大家提前安装好java环境,这里不再单独说明jdk的安装了
1.1 linux安装
0、安装jdk1.8
1、下载安装包,这里我选择4.8.0版本示例,大家可以根据自己的需要选择版本
下载路径:https://rocketmq.apache.org/release-notes/2020/12/21/4.8.0
选择bin包类型,source为源码包,后续我们单独讲解源码包安装形式
2、将下载的安装包上传到linux服务器,或者可以直接在服务器上通过wget指令下载
wget https://archive.apache.org/dist/rocketmq/4.8.0/rocketmq-all-4.8.0-bin-release.zip --no-check-certificate
3、解压压缩包并重命名,方便后续书写路径
unzip /data/rocketmq-all-4.8.0-bin-release.zip
mv rocketmq-all-4.8.0-bin-release rocketmq
4、进入安装目录
cd /data/rocketmq
5、启动namesever服务
# 不需要nohup输出日志,rocketmq有自己的日志路径
nohup sh ./bin/mqnamesrv > /dev/null 2>&1 &
# nameserver关闭指令
sh ./bin/mqshutdown namesrv
6、可以通过rocketmq默认的日志文件查看启动情况:
tail -500f /root/logs/rocketmqlogs/namesrv.log
如下字样表示启动成功!
启动broker
7、修改broker.conf配置文件
vim conf/broker.conf
在末尾添加broker的ip,此处ip为你安装rocketmq的服务器ip
brokerIP1 = 192.168.244.50
8、broker默认的堆空间是8G, 我这里是本地虚拟机启动的,内存肯定不够,所以要提前调整下,大家如果有需要调整堆内存空间的也可以按照如下配置
vim bin/runbroker.sh# 修改内容。根据你虚拟机的配置调小一点
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"
9、创建commitlog存储文件夹及队列存储文件夹,我们只需要按照默认配置创建该路径即可,否则后续启动broker会报错路径不存在
mkdir -p /root/store/commitlog
mkdir -p /root/store/consumequeue
9、启动broker
# 这里-n后的地址是namesever的地址和端口
# autoCreateTopicEnable=true 这里为了后续方便测试,开启了自动创建topic,线上环境可以不设置
nohup sh ./bin/mqbroker -c ./conf/broker.conf -n 192.168.244.50:9876 autoCreateTopicEnable=true > /dev/null 2>&1 &
# broker关闭指令
sh ./bin/mqshutdown broker
10、查询启动情况
tail -500f /root/logs/rocketmqlogs/broker.log
1.2 安装rocketmq 控制台
- 方式一:docker安装
rocketmq-dashboard项目中介绍了更加快捷的docker安装方式
docker pull apacherocketmq/rocketmq-dashboard:latest
docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876" -p 8080:8080 -t apacherocketmq/rocketmq-dashboard:latest
- 方式二:源码编译安装
在rocketmq的拓展项目rocketmq-externals早期的版本中是包含了控制台项目rocketmq-console的,后单独抽取为独立项目rocketmq-dashboard了,提供 Broker 集群信息查看,Topic 管理,Producer、Consumer 信息展示,消息查询等等常用功能。所以我们可以通过下载项目源码进行编译:https://github.com/apache/rocketmq-dashboard))
1、下载源码
2、修改一下端口和namesever地址
3、maven打包(如果是直接在服务器上打包的,要记得提前安装maven)
mvn clean package -Dmaven.test.skip=true
4、上传jar包到服务器,启动项目
nohup java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar &
查看启动日志
tail -f nohup.out
5、开通端口
firewall-cmd --add-port=9876/tcp --permanent
firewall-cmd --add-port=9888/tcp --permanent
firewall-cmd --add-port=10909/tcp --permanent
firewall-cmd --reload
6、访问 ip:9888
7、如果启动报错:remotingConnectException: connect to 192.168.244.50 :10909 failed
这是要如上述所说在broker.conf中配置brokerIP1 = 192.168.244.50
,然后放开10909端口,两者都做了后,先重启下namesever,然后再重启broker
1.3 设置开机自启
1、设置权限
chmod a+x /data/rocketmq/bin/mqnamesrv
chmod a+x /data/rocketmq/bin/mqbroker
2、在/lib/systemd/system/下新建 rocketmq-namesrv.service
vim /lib/systemd/system/rocketmq-namesrv.service
文件内容
[Unit]Description=RocketMQ Namesrv
After=network.target remote-fs.target nss-lookup.target[Service]
Type=sample
User=root
# 设置java路径
Environment=JAVA_HOME=/var/local/zulu8.58.0.13-ca-jdk8.0.312-linux_aarch64/
ExecStart=/data/rocketmq/bin/mqnamesrv
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=0
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
3、同样创建rocketmq-broker.service文件
vim /lib/systemd/system/rocketmq-broker.service
文件内容
[Unit]
Description=rocketmq-broker
After=network.target[Service]
Type=sample
User=root
# 设置java路径
Environment=JAVA_HOME=/var/local/zulu8.58.0.13-ca-jdk8.0.312-linux_aarch64/
ExecStart=/data/rocketmq/bin/mqbroker -c /data/rocketmq/conf/broker.conf -n 192.168.244.50:9876
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=0
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
4、创建rocketmq-dashboard.service文件
vim /lib/systemd/system/rocketmq-dashboard.service
文件内容
[Unit]
Description=rocketmq-dashboard
After=network.target[Service]
Type=sample
User=root
# 这里选你的java路径,默认是/usr/bin/java
ExecStart=/var/local/zulu8.58.0.13-ca-jdk8.0.312-linux_aarch64/bin/java -jar /data/rocketmq-dashboard-1.0.1-SNAPSHOT.jar
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=0
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
5、设置开机自启
#重新加载服务的配置文件
systemctl daemon-reload
#开启
systemctl start rocketmq-namesrv.service
systemctl start rocketmq-broker.service
systemctl start rocketmq-dashboard.service
#停止
systemctl stop rocketmq-namesrv.service
systemctl stop rocketmq-broker.service
systemctl stop rocketmq-dashboard.service
# 查看服务状态
systemctl status rocketmq-namesrv.service
systemctl status rocketmq-broker.service
systemctl status rocketmq-dashboard.service
#启用开机启动
systemctl enable rocketmq-namesrv.service
systemctl enable rocketmq-broker.service
systemctl enable rocketmq-dashboard.service
启动状态