Centos 7 安装 RocketMQ 5.14(保姆级)

1.yum 安装 upunzip
java 复制代码
yum install -y unzip
2.创建文件夹存放RocketMQ, 安装之前需要安装JDK
java 复制代码
mkdir -p /opt/tools/rocketmq
3.下载 RocketMQ 上传到 /opt/tools/rocketmq

RocketMQ 官网下载地址

4.切换目录、解压
java 复制代码
cd  /opt/tools/rocketmq
unzip rocketmq-all-5.1.4-bin-release.zip
# 名称太长、修改一下
mv rocketmq-all-5.1.4-bin-release rocket-5.1
4.配置环境变量
java 复制代码
# 编辑
vim /etc/profile
# 添加
export NAMESRV_ADDR=公网IP:9876
# 刷新
source /etc/profile
5.修改配置文件
java 复制代码
# 第一个:
vim /opt/tools/rocketmq/rocket-5.1/bin/runserver.sh

# Example of JAVA_MAJOR_VERSION value : '1', '9', '10', '11', ...
# '1' means releases befor Java 9

JDK 8版本之前修改:
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m -XX:MetaspaceSize=32m -XX:MaxMetaspaceSize=64m"

JDK 9版本之后修改:
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -XX:MetaspaceSize=32m -XX:MaxMetaspaceSize=64m"

注意:JDK 9 版本在 else 下面

# 保存退出
esc+:wq

# 第二个:
vim /opt/tools/rocketmq/rocket-5.1/bin/runbroker.sh

# 找到修改-Xms128m -Xmx128m
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m"
choose_gc_options

# 保存退出
esc+:wq

# 第三个:
vim /opt/tools/rocketmq/rocket-5.1/conf/broker.conf
# 添加下面三个配置
namesrvAddr = xxx.xxx.xxx.xx:9876
autoCreateTopicEnable = true
brokerIP1 = xxx.xxx.xxx.xx

# 指定NameServer的地址,格式为<IP>:<Port>
# namesrvAddr = xxx.xxx.xxx.xx:9876
# 是否允许自动创建主题,当生产者发送消息到一个尚不存在的主题时,如果设置为true,RocketMQ会自动创建这个主题
# autoCreateTopicEnable = true
# 指定Broker节点的IP地址,通常在集群部署时会配置多个Broker节点
# brokerIP1 = xxx.xxx.xxx.xx
6.创建日志目录和启动
java 复制代码
# 创建日志目录
mkidr /opt/tools/rocketmq/rocket-5.1/logs
# 启动
nohup sh mqnamesrv > /opt/tools/rocketmq/rocket-5.1/logs/namesv.log 2>&1 &

nohup sh mqbroker -c /opt/tools/rocketmq/rocket-5.1/conf/broker.conf > /opt/tools/rocketmq/rocket-5.1/logs/broker.log 2>&1 &

# 也可以切换bin目录下启动
nohup sh mqnamesrv > ../logs/namesv.log 2>&1 &

nohup sh mqbroker -c ../conf/broker.conf > ../logs/broker.log 2>&1 &

# 我使用的 netstat -nltp 查看是否启动,没有启动去看log日志

mqnamesrv和mqbroker是两个不同的组件
	mqnamesrv:
		NameServer(名称服务)是RocketMQ中的一种核心组件,负责管理整个消息队列系统的元数据信息,
			包括主题(Topic)、队列(Queue)、Broker集群等。
		NameServer充当了路由查询的中心,当Producer或Consumer需要发送或接收消息时,
			它们会向NameServer查询路由信息,以确定消息应该发送到哪个Broker上。
		NameServer是轻量级的,不存储消息数据,主要负责维护路由信息,因此它的资源消耗相对较低。
	mqbroker:
		Broker(消息代理)是RocketMQ中另一个重要的组件,负责存储和传递消息,是实际处理消息的节点。
		每个Broker节点负责管理一部分主题的消息存储和消息传递,它们之间可以组成一个Broker集群,以提高消息的可用性和吞吐量。
		Broker存储了消息数据,并且负责处理Producer发送过来的消息,并将消息分发给相应的Consumer进行消费。
7.firewall 防火墙配置

firewall 防火墙配置 <==== 详细配置

java 复制代码
开放:9876、10909、10911、10912、8081
需要放开以下端口:
	NameServer端口:默认为9876端口,用于NameServer组件之间进行通信,以及Producer和Consumer与NameServer通信获取路由信息。
	Broker端口:默认为10909(TCP)、10911(TCP)、10912(TCP)等一系列端口,用于Broker节点之间的通信,
		以及Producer和Consumer与Broker节点进行消息发送和接收。
	Web管理控制台端口:默认为8081端口,用于RocketMQ的Web管理控制台,可以通过该端口访问RocketMQ的管理界面,进行监控、配置和管理操作。
8.RocketMQ的Web管理控制台

rocketmq-dashboard-1.0.1-SNAPSHOT.jar 也可以自己下载源码编译,我试过了,很慢

https://download.csdn.net/download/a1308003218/88840610 一位热心网友提供下载地址

上传到 /opt/tools/rocketmq/

运行rocketmq-dashboard-1.0.1-SNAPSHOT.jar

java 复制代码
# 修改自己IP

nohup java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar --server.port=8081 --rocketma.config.namesrvAddr=xxx.xxx.xxx.xx:9876 > dashboard.log 2>&1 &

# 内存消耗有点大,使用 free -h 查看,保守900M左右
相关推荐
李先静2 分钟前
用 gdbserver 调试 arm-linux 上的 AWTK 应用程序
linux·arm开发·awtk
地球空间-技术小鱼4 分钟前
YUM(Yellowdog Updater, Modified)和DNF(Dandified YUM)简介
linux·运维·服务器·笔记·学习
忆源5 分钟前
Linux高级--2.4.2 linux TCP 系列操作函数 -- 深层理解
linux·网络·tcp/ip
旺仔学IT33 分钟前
CentOS上安装和卸载Docker
docker·centos
ZHOUPUYU34 分钟前
Centos常用命令,按功能分类,用户和权限管理等
linux·运维·centos
vvw&1 小时前
如何在 Ubuntu 22.04 上安装 phpMyAdmin
linux·运维·服务器·mysql·ubuntu·php·phpmyadmin
灰勒塔德2 小时前
Linux文件IO
linux·运维·服务器
花姐夫Jun3 小时前
在 CentOS 8 系统上安装 Jenkins 的全过程
linux·centos·jenkins
是店小二呀3 小时前
【Linux】Linux开发利器:make与Makefile自动化构建详解
linux·运维·自动化
dzend3 小时前
Kafka、RocketMQ、RabbitMQ 对比
kafka·rabbitmq·rocketmq