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
相关推荐
阿拉伯柠檬几秒前
传输层与传输层协议UDP
linux·网络·网络协议·面试·udp
你好helloworld2 分钟前
linux离线安装nvidia-docker
linux·运维·服务器
飞Link3 分钟前
【开发工具】Docker常用操作
运维·docker·容器
忙里偷闲学python7 分钟前
mysql
linux·数据库·mysql·oracle
nxlifebao3579 分钟前
自媒体整体效率提升怎么做?AI智能媒体助理自动化是关键
运维·自动化·媒体·ai内容创作·自动化工作流·自媒体效率提升·多平台分发
sun00770012 分钟前
iptables 配置 3台设备 进行路由转发(不同网段)
运维·服务器
landyjzlai19 分钟前
深入理解AMBA总线(14)AXI Ordering Model、非对齐访问
运维·服务器
lbb 小魔仙20 分钟前
【Linux】Linux入门实战教程:文件系统与进程管理
linux·运维·服务器
ts97725 分钟前
Nginx + Vue History 模式刷新 404 的完整排查与解决方案
运维·vue.js·nginx
HIT_Weston28 分钟前
76、【Ubuntu】【Hugo】搭建私人博客:Hugo 版本更新
linux·运维·ubuntu