RocketMQ快速入门:linux安装rocketmq并配置开机自启(十一)

目录

  • [0. 引言](#0. 引言)
  • [1. 下载安装包](#1. 下载安装包)
    • [1.1 高版本直接下载安装包](#1.1 高版本直接下载安装包)
    • [1.2 下载源码包进行编译](#1.2 下载源码包进行编译)
  • [2. namesrv和broker安装](#2. namesrv和broker安装)
    • [2.1 安装](#2.1 安装)
    • [2.2 放开服务器端口](#2.2 放开服务器端口)
    • [2.3 测试](#2.3 测试)
  • [3. 配置开机自启](#3. 配置开机自启)
    • [3.1 配置namesrv开机自启](#3.1 配置namesrv开机自启)
    • [3.2 配置broker开机自启](#3.2 配置broker开机自启)

0. 引言

之前我们针对本机电脑安装rocketmq进行了讲解,同时对rocketmq的核心原理和常用方法进行了演示,接下来我们继续从部署架构层来讲解rocketmq的可用性保障,但在搭建rocketmq集群之前,我们先对linux环境下的单机服务搭建进行讲解

1. 下载安装包

环境准备:jdk1.8(大家提前在linux上安装jdk, 这里不再单独说明)

1.1 高版本直接下载安装包

1、下载安装包

rocketmq4.9.5 版本及以上的的可以通过以下地址下载安装包
https://dist.apache.org/repos/dist/release/rocketmq/

在服务器上通过wget指令即可下载,注意"bin"字样的是编译好的安装包,"source"字样的是源码包,源码包还要自己编译才能进行安装,编译教程参考下文

shell 复制代码
wget https://dist.apache.org/repos/dist/release/rocketmq/5.0.0/rocketmq-all-5.0.0-bin-release.zip

1.2 下载源码包进行编译

官方文档: https://rocketmq.apache.org/zh/docs/quickStart/01quickstart/

1、对于4.9.5以下的版本,就需要我们自己下载源码包进行编译

这里我们以4.8.0版本为例,先下载源码,下载地址:https://github.com/apache/rocketmq/releases?page=2

服务器上可以通过wget直接下载

shell 复制代码
wget https://github.com/apache/rocketmq/archive/refs/tags/rocketmq-all-4.8.0.zip

2、如果想在服务器上直接编译,那需要在服务器上安装maven

shell 复制代码
yum update
yum install maven

检查安装版本

shell 复制代码
mvn -v

3、maven编译源码,或者也可以在本机idea编译好上传到服务器

shell 复制代码
unzip rocketmq-all-4.8.0.zip
# 若未安装unzip工具,可通过yum安装
yum -y install unzip

cd rocketmq-all-4.8.0/
mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U
cd distribution/target/rocketmq-4.8.0/rocketmq-4.8.0

4、该目录下的rocketmq-4.8.0.tar.gz和rocketmq-4.8.0.zip就是编译好的安装包。我们将安装包复制到安装目录下即可

2. namesrv和broker安装

2.1 安装

1、进入你自定义的安装目录

2、解压安装包

shell 复制代码
unzip rocketmq-4.8.0.zip

rocketmq的安装实际上安装启动namesrv和broker,如果不清楚这两者间的关系和作用的,可以查看专栏之前的文章
RocketMQ快速入门:namesrv、broker、dashboard的作用及消息发送、消费流程(三)

3、进入安装目录,修改namesrv启动脚本

shell 复制代码
cd rocketmq-4.8.0
vim bin/runserver.sh

(1) 调整JAVA_HOME为自己的java安装目录

(2)如果需要调整namesrv占用内存的也可在此处调整

4、同样的修改runbroker脚本

shell 复制代码
vim bin/runbroker.sh

除了修改jdk路径和内存大小外,因为我这里用的jdk1,8, 因此broker还需要垃圾回收器,否则会报错Error: VM option 'UseG1GC' is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.

-XX:+UseG1GC前添加-XX:+UnlockExperimentalVMOptions即可,或者换成其他垃圾回收器,比如namesrv的CMS

5、修改broker.conf配置文件

shell 复制代码
vim conf/broker.conf 

添加内容:

shell 复制代码
namesrvAddr = 192.168.244.27:9876 # 填服务器ip, 如有公网ip填公网ip
autoCreateTopicEnable = true # 开启topic自动创建
brokerIP1 = 192.168.244.27

6、创建日志目录

shell 复制代码
mkdir -p /data/logs/rocketmq

7、启动namesrv

shell 复制代码
nohup sh bin/mqnamesrv > /data/logs/rocketmq/nameserver.log &

查看启动日志

shell 复制代码
tail -500f /data/logs/rocketmq/nameserver.log

9、启动broker

shell 复制代码
nohup sh bin/mqbroker -n localhost:9876 > /data/logs/rocketmq/broker.log &

查看启动日志

shell 复制代码
tail -500f /data/logs/rocketmq/broker.log

出现如下字样说明启动成功

10、如果需要关闭服务,通过如下指令关闭即可

shell 复制代码
./bin/mqshutdown namesrv
./bin/mqshutdown broker

2.2 放开服务器端口

11、开启端口,如果没有打开防火墙,则不用配置

shell 复制代码
firewall-cmd --add-port=10911/tcp --permanent
firewall-cmd --add-port=10909/tcp --permanent
firewall-cmd --add-port=9876/tcp --permanent
# 开启后重新加载
firewall-cmd --reload

2.3 测试

12、通过之前文章中书写的消息发送代码测试一下

消费也成功

3. 配置开机自启

3.1 配置namesrv开机自启

1、创建namesrv自启脚本

shell 复制代码
vi /etc/systemd/system/namesrv.service

内容如下

shell 复制代码
[Unit]
Description=rocketmq nameserver
Documentation=namesrv
After=network.target

[Service]
Type=sample
User=root
ExecStart=/data/rocketmq-4.8.0/bin/mqnamesrv > /data/logs/rocketmq/nameserver.log 
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=0
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

2、加载脚本,并添加到开机项

shell 复制代码
systemctl daemon-reload
systemctl enable namesrv.service

3、启动服务

注意:如果之前已经启动过,先通过ps指令查询进程id,然后通过kill -9杀掉进程后再用systemctl启动服务

shell 复制代码
ps -ef | grep namesrv
shell 复制代码
kill -9 2298
shell 复制代码
# 启动
systemctl start namesrv.service
# 停止
systemctl stop namesrv.service
# 查看服务状态
systemctl status namesrv.service

3.2 配置broker开机自启

创建自启脚本

shell 复制代码
vi /etc/systemd/system/broker.service

脚本内容

shell 复制代码
[Unit]
Description=rocketmq broker
Documentation=broker
After=network.target

[Service]
Type=sample
User=root
ExecStart=/data/rocketmq-4.8.0/bin/mqbroker -n localhost:9876 /data/rocketmq-4.8.0/conf/broker.conf > /data/logs/rocketmq/broker.log 
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=0
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

2、加载脚本,并添加到开机项

shell 复制代码
systemctl daemon-reload
systemctl enable broker.service

3、启动服务

注意:如果之前已经启动过,先通过ps指令查询进程id,然后通过kill -9杀掉进程后再用systemctl启动服务

shell 复制代码
# 启动
systemctl start broker.service
# 停止
systemctl stop broker.service
# 查看服务状态
systemctl status broker.service
相关推荐
AOwhisky23 分钟前
Python 学习笔记(第十四期)——运维自动化(下·中篇):远程文件传输——paramiko进阶篇
运维·python·学习·云原生·自动化·文件传输·paramiko
imc.111 小时前
linux基础IO
linux·运维·服务器
躺不平的理查德1 小时前
让Ubuntu 的第二块网卡 ens37 永久固定为 192.168.30.111
运维·服务器
bitbrowser2 小时前
Facebook 验证反复回到原页面,应该从哪里排查
运维·服务器·facebook
Land03292 小时前
AI网页元素变化无法自动修复?自带元素自愈的自动化解决方案
运维·人工智能·ai·自动化·rpa
fengyehongWorld2 小时前
Jenkins 安装与简单配置
运维·jenkins
云智慧AIOps社区2 小时前
2026 国产化 ITSM 替代指南:横向测评 ServiceNow、轻帆云、Jira等五款主流IT服务管理平台
运维·人工智能·运维开发·it服务管理·itsm平台
Urbano2 小时前
针织卫衣全流程生产工序科普:自动化替代、产能优化与设备选型实战方案
运维·自动化
BelongPanda3 小时前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
AC赳赳老秦3 小时前
招投标公开数据自动化采集实战:基于 OpenClaw 的定时抓取与业务关键词精准推送
运维·服务器·数据库·自动化·测试用例·deepseek·openclaw