rocketmq4.7.1 linux安装

2024-02-23 13:20
文章标签 linux 安装 rocketmq4.7

本文主要是介绍rocketmq4.7.1 linux安装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

rocketmq单机安装

1 准备 【可忽略】

配置jdk
配置maven 【编译rocketmq-console用】
# 安装maven
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
# 解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz
# 赋权
chmod -R 777 maven/
# 配置
vi /etc/profile
# 【1】 配置maven
#  刷新配置
source /etc/profile
# 验证
mvn -v

【1】 配置maven系统环境

#配置maven环境变量
export MAVEN_HOME=/usr/maven/apache-maven-3.6.3
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin

【2】配置maven settting.xml
打开maven的配置文件setting.xml,里面有个配置项目

<mirrors><mirror><id>aliyun</id><mirrorOf>central</mirrorOf><name>aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror><mirror><id>UK</id><name>UK Central</name><url>http://uk.maven.org/maven2</url><mirrorOf>central</mirrorOf></mirror>
</mirrors>
## 镜像存放路径
<localRepository>/home/repository</localRepository>
## 默认jkd版本<id>jdk-1.8</id>    
<activation>    <activeByDefault>true</activeByDefault>    <jdk>1.8</jdk>    
</activation>    
<properties>    <maven.compiler.source>1.8</maven.compiler.source>    <maven.compiler.target>1.8</maven.compiler.target>    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
</properties>

2 安装Rocketmq

# 下载
wget http://mirrors.hust.edu.cn/apache/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip
# 解压
unzip rocketmq-all-4.7.1-bin-release.zip
# 进入rocketm目录
cd rocketmq-all-4.7.1-bin-release

3 修改JVM配置

进到/rocketmq-all-4.7.1-bin-release/bin下编辑runserver.sh 与 runbroker.sh文件根据个人虚拟机大小进行修改

##查找sh脚本中的JVM参数设置:
find . -name '*.sh' | xargs egrep 'Xms'

需要修改JVM参数的文件:
bin/runserver.sh
bin/runbroker.sh
bin/tools.sh

## vi runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=64m -XX:MaxPermSize=128m"
## vi runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=64m -XX:MaxPermSize=128m"
## vi tools.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"

在这里插入图片描述

4 配置RocketMQ环境变量

## 修改环境变量
vi /etc/profile
## ....修改配置
## 刷新配置
source /etc/profile
export ROCKETMQ=/data/mq/rocketmq-all-4.7.1-bin-release
export PATH=$PATH:$ROCKETMQ/bin

5.1 启动NAMESERVER

Name Server的默认端口为9876,运行sh bin/mqnamesrv -p可查看Name Server的配置项,并可通过-c namesrv.conf方式指定配置文件启动;

# 后台启动
nohup sh bin/mqnamesrv >/dev/null 2>&1 &## 查看日志:namesrv.log
## RocketMQ的默认日志路径为 ~/logs/rocketmqlogs/
tail -f ~/logs/rocketmqlogs/namesrv.log## 停止 nameserver
sh bin/mqshutdown namesrv   

在这里插入图片描述

5.2 启动BROKER

mqbroker 启动默认使用 /conf/broker.conf文件的配置

mqbroker
-c,–configFile 代理配置属性文件
-h,–help Print help
-m,–printImportantConfig 打印重要配置项
-n,–namesrvAddr 指定服务器地址列表(内网地址) eg: 192.168.0.1:9876;192.168.0.2:9876
-p,–printConfigItem 打印所有配置项

# 后台启动
# 如果/conf/broker.conf 中配置了namesrvAddr  这里就不需要配置了
nohup sh bin/mqbroker -n localhost:9876 >/dev/null 2>&1 &
# 或者
# autoCreateTopicEnable=true 生产环境不要开启
nohup sh bin/mqbroker -n 192.168.2.174:9876 -c conf/broker.conf autoCreateTopicEnable=true >/dev/null 2>&1 &
## 查看RocketMQ进程
ps -ef | grep -v grep | grep rocketmq 
## 查看日志
tail -f ~/logs/rocketmqlogs/broker.log
## 停止 broker
sh bin/mqshutdown broker

6 测试

## 设置环境变量 指定Name Server 地址
export NAMESRV_ADDR=localhost:9876
## 集群环境 设置环境变量
#export NAMESRV_ADDR=192.168.0.1:9876;192.168.0.2:9876,192.168.0.3:9876## 启动生产者
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer## 启动消费者
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

rocketmq 集群安装

参考:
RocketMQ 集群部署 - 简书
高可用RocketMQ集群搭建 - 知乎

broker 机器信息

Master 1:172.18.24.5
Slave 1:172.18.24.6
Master 2:172.18.24.7
Slave 2:172.18.24.8
namesrv 机器信息(这里为了演示,复用了 3 台主机做 Name Server。正式生产环境应该要考虑配置单独的 3 台机器做 Name Server)

Name Server 1:172.18.24.5
Name Server 2:172.18.24.6
Name Server 3:172.18.24.7

配置 rocketmq broker-a(在 Master 1 上操作)

# vim conf/2m-2s-sync/broker-a.properties
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
namesrvAddr=172.18.24.5:9876;172.18.24.6:9876;172.18.24.7:9876

配置 rocketmq broker-a-s(在 Slave 1 上操作)

# vim conf/2m-2s-sync/broker-a-s.properties
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
namesrvAddr=172.18.24.5:9876;172.18.24.6:9876;172.18.24.7:9876

配置 rocketmq broker-b(在 Master 2 上操作)

# vim conf/2m-2s-sync/broker-b.properties
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
namesrvAddr=172.18.24.5:9876;172.18.24.6:9876;172.18.24.7:9876

配置 rocketmq broker-b-s(在 Slave 2 上操作)

# vim conf/2m-2s-sync/broker-b-s.properties
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
namesrvAddr=172.18.24.5:9876;172.18.24.6:9876;172.18.24.7:9876
## 修改日志默认路径
# sed -i 's#${user.home}/logs/#/data/logs/#g' conf/logback_broker.xml
# sed -i 's#${user.home}/logs/#/data/logs/#g' conf/logback_namesrv.xml
# sed -i 's#${user.home}/logs/#/data/logs/#g' conf/logback_tools.xml## 启动 Name Server,在 3 台 Name Server 上操作
nohup sh bin/mqnamesrv > /data/logs/rocketmqlogs/mqnamesrv.log 2>&1 & ## master1 slave1 省略。。。## 启动 Master 2,在 Master 2 上操作
sh bin/mqbroker -c conf/2m-2s-sync/broker-b.properties > /data/logs/rocketmqlogs/broker-b.log 2>&1 &## 启动 Slave 2,在 Slave 2 上操作
sh bin/mqbroker -c conf/2m-2s-sync/broker-b-s.properties > /data/logs/rocketmqlogs/broker-b-s.log 2>&1 &

补充

修改Name Server的端口

RocketMQ Name Server的默认端口为9876,可以通过以下方法修改Name Server的端口:

## 新增一个Name Server配置文件namesrv.conf,保存内容为:
listenPort=10076
## 启动Name Server时指定配置文件:
nohup sh bin/mqnamesrv -c namesrv.conf >/dev/null 2>&1 &
## 查看RocketMQ进程:
ps -ef | grep rocketmq
##查看RocketMQ Name Server的端口号:
netstat -tnlp | grep 
## 修改后Broker需要指定新的Name Server地址(端口)。

安装RocketMQ控制台

git clone https://github.com/apache/rocketmq-externals.git
cd rocketmq-externals/rocketmq-console
mvn clean package -Dmaven.test.skip=true
## 将target/rocketmq-console-ng*.jar 放到和RocketMQ安装目录(本例为/usr/local/rocketmq)下
## 在RocketMQ安装目录下新建一个启动RocketMQ控制台的脚本来启动RocketMQ控制台:
nohup java -jar rocketmq-console-ng*.jar --server.port=xxxx  --rocketmq.config.namesrvAddr=localhost:9876 > /dev/null 2>&1 &
## 默认RocketMQ控制台不需要密码登录

参考:
https://github.com/apache/rocketmq-externals
https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console

ACL

【1】在broker.conf文件中添加

# 添加acl权限控制
aclEnable=true

【2】修改 plain_acl.yml 文件
accessKey 和 secretKey 长度必须大于6 ,且不能有@符号(大坑啊!!!)

# 修改accessKey 和 secretKey
accessKey: rocketmq1
secretKey: passwordxxxx

broker-a.properties

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样  例如:在a.properties 文件中写 broker-a  在b.properties 文件中写 broker-b
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#Broker 的角色,ASYNC_MASTER=异步复制Master,SYNC_MASTER=同步双写Master,SLAVE=slave节点
brokerRole=ASYNC_MASTER
#刷盘方式,ASYNC_FLUSH=异步刷盘,SYNC_FLUSH=同步刷盘 
flushDiskType=SYNC_FLUSH
#Broker 对外服务的监听端口
listenPort=10911
#nameServer地址,这里nameserver是单台,如果nameserver是多台集群的话,就用分号分割(即namesrvAddr=ip1:port1;ip2:port2;ip3:port3)
namesrvAddr=192.168.31.186:9876;192.168.31.231:9876
#每个topic对应队列的数量,默认为4,实际应参考consumer实例的数量,值过小不利于consumer负载均衡
defaultTopicQueueNums=8
#是否允许 Broker 自动创建Topic,生产建议关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,生产建议关闭
autoCreateSubscriptionGroup=true
#设置BrokerIP
brokerIP1=192.168.31.186
#存储路径
storePathRootDir=/data/rocketmq-all-4.7.0-bin-release/data/store-a
#commitLog 存储路径
storePathCommitLog=/data/rocketmq-all-4.7.0-bin-release/data/store-a/commitlog
#消费队列存储路径存储路径
storePathConsumerQueue=/data/rocketmq-all-4.7.0-bin-release/data/store-a/consumequeue
#消息索引存储路径
storePathIndex=/data/rocketmq-all-4.7.0-bin-release/data/store-a/index
#checkpoint 文件存储路径
storeCheckpoint=/data/rocketmq-all-4.7.0-bin-release/data/store-a/checkpoint
#abort 文件存储路径
abortFile=/data/rocketmq-all-4.7.0-bin-release/data/store-a/abort
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000

错误解决

1)报错: There is insufficient memory for the Java Runtime Environment to continue

rocketmq 解决:There is insufficient memory for the Java Runtime Environment to continue_愿我如星君如月 … 夜夜流光相皎洁 …-CSDN博客

2)报错:org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest
解决:org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest_愿我如星君如月 … 夜夜流光相皎洁 …-CSDN博客

3)报错:Could not find or load main class org.apache.rocketmq.example.quickstart.Producer
解决:Could not find or load main class org.apache.rocketmq.example.quickstart.Producer_愿我如星君如月 … 夜夜流光相皎洁 …-CSDN博客

4)报错: org.apache.rocketmq.remoting.execption.RemotingConnectException:connect to failed

org.apache.rocketmq.remoting.execption.RemotingConnectException:connect to failed - 大碗2020 - 博客园

解决RocketMQ控制台出错:… remoting.exception.RemotingConnectException: connect to null failed_H_O_W_E的专栏-CSDN博客

参考

centos7中安装RocketMQ4.7版本_u011442726的博客-CSDN博客
在CentOS7上安装RocketMQ 4.7.1 – 运维派

这篇关于rocketmq4.7.1 linux安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/738772

相关文章

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4