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
相关推荐
伤不起bb1 小时前
Kafka 消息队列
linux·运维·分布式·kafka
shepherd1111 小时前
一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
架构·消息队列·rocketmq
Hello.Reader1 小时前
Git 安装全攻略Linux、macOS、Windows 与源码编译
linux·git·macos
龙仔7251 小时前
华为云CentOS配置在线yum源,连接公网后,逐步复制粘贴,看好自己对应的版本即可,【新手必看】
linux·centos·华为云
tiging1 小时前
centos实现SSH远程登录
linux·centos·ssh
好多知识都想学2 小时前
Linux 文件处理器 sed 和 awk 详细讲解
linux·运维·ubuntu
Johny_Zhao3 小时前
阿里云数据库Inventory Hint技术分析
linux·mysql·信息安全·云计算·系统运维
FBI HackerHarry浩3 小时前
云计算 Linux Rocky day05【rpm、yum、history、date、du、zip、ln】
linux·运维·云计算·腾讯云
丁劲犇4 小时前
开始在本地部署自己的 Gitea 服务器
运维·服务器·gitea
异常君4 小时前
Windows 与 Linux 虚拟内存机制对比:设计理念与实现差异
java·linux·windows