RocketMQ快速入门: linux安装RocketMQ并配置开机自启

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

启动状态
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/473574.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算基础-存储虚拟化(深信服aSAN分布式存储)

什么是存储虚拟化 分布式存储是利用虚拟化技术 “池化”集群存储卷内通用X86服务器中的本地硬盘,实现服务器存储资源的统一整合、管理及调度,最终向上层提供NFS、ISCSI存储接口,供虚拟机根据自身的存储需求自由分配使用资源池中的存储空间。…

EasyUI动态加载组件

要实现如下的效果,在表格中显示进度条 主要是需要再次初始化组件,借用ChatGPT的意思是: 在许多 JavaScript UI 框架中,包括 EasyUI,在动态地创建或插入新的 DOM 元素后,通常需要手动初始化相关的组件或特性…

每日OJ题_算法_递归④力扣24. 两两交换链表中的节点

目录 ④力扣24. 两两交换链表中的节点 解析代码 ④力扣24. 两两交换链表中的节点 24. 两两交换链表中的节点 难度 中等 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即…

入门OpenCV:图像阈值处理

基本概念 图像阈值是一种简单、高效的图像分割方法,目的是将图像转换成二值图像。这个过程涉及比较像素值和阈值,根据比较结果来确定每个像素点的状态(前景或背景)。图像阈值在处理二维码、文本识别、物体跟踪等领域中非常有用。…

Codeforces Round 926 (Div. 2) B. Sasha and the Drawing (Java)

Codeforces Round 926 (Div. 2) B. Sasha and the Drawing (Java) 比赛链接:Codeforces Round 926 (Div. 2) B题传送门:B. Sasha and the Drawing 题目:B. Sasha and the Drawing Example input 3 4 3 3 3 10 3 9 4 7 7 11 2 3output 2 …

人工智能学习与实训笔记(四):神经网络之NLP基础—词向量

人工智能专栏文章汇总:人工智能学习专栏文章汇总-CSDN博客 本篇目录 四、自然语言处理 4.1 词向量 (Word Embedding) 4.1.1 词向量的生成过程 4.1.2 word2vec介绍 4.1.3 word2vec:skip-gram算法的实现 4.2 句向量 - 情感分析 4.2.1 LSTM (Long S…

【Python】测量WAV文件播放时长

问题 windows播放WAV音频文件,一般使用API函数,如PlaySound。实际使用发现,从调用PlaySound到实际开始播放存在200ms以上的延时,在游戏编程中音效实时性是个需要解决的问题。 本文主要讨论,windows播放WAV文件的衍生…

MySQL 基础知识(九)之视图

目录 1 视图的介绍 2 视图算法 3 创建视图 4 查看视图结构 5 修改视图 6 删除视图 7 参考文档 1 视图的介绍 视图是一张并不存储数据的虚拟表,其本质是根据 SQL 语句动态查询数据库中的数据。数据库中只存放了视图的定义,通过 SQL 语句使用视图时…

C语言-生成随机数

目录 1 rand()函数 2 srand()函数 1 rand()函数 int rand (void); rand函数可以生成一个随机整数,范围在 0 ~ RAND_MAX,RAND_MAX的值是0x7fff,换算成十进制是32767。 但是我们发现使用此函数生成随机数,每次生成的随机数都是一…

【C深度解剖】前置++与后置++

简介:本系列博客为C深度解剖系列内容,以某个点为中心进行相关详细拓展 适宜人群:已大体了解C语法同学 作者留言:本博客相关内容如需转载请注明出处,本人学疏才浅,难免存在些许错误,望留言指正 作…

挑战杯 YOLOv7 目标检测网络解读

文章目录 0 前言1 yolov7的整体结构2 关键点 - backbone关键点 - head3 训练4 使用效果5 最后 0 前言 世界变化太快,YOLOv6还没用熟YOLOv7就来了,如果有同学的毕设项目想用上最新的技术,不妨看看学长的这篇文章,学长带大家简单的…

程序员搞什么副业才有性价比?

干一行恨一行,三百六十行,行行干破防! 一份稳定的主业固然重要,但是有性价比的副业更令人心动。朝九晚五的工作日复一日,当然也可能是996的生活反复捶打。从整体来讲,程序员算是高收入群体,但往…