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左右
相关推荐
我在人间贩卖青春9 小时前
网络软件相关命令
linux·软件管理
CIb0la9 小时前
Complete Bug Bounty tool List for free
linux·运维·bug
ytadpole9 小时前
若依验证码渲染失效问题
java·linux·后端
上78将9 小时前
什么是Stream流
linux·开发语言·python
似水流年 光阴已逝9 小时前
Linux系统“No space left on device”错误:从根因到修复的全攻略
linux·运维·服务器
Koma_zhe9 小时前
【Puter开源个人云平台】在家搭个私人网盘!Puter 让数据访问不受限
linux·笔记·开源·ssh
玩具猴_wjh9 小时前
Linux常用命令详细介绍
linux·运维·服务器
Y淑滢潇潇9 小时前
RHCE Day 9 SHELL条件测试
linux·运维·服务器
cqsztech9 小时前
oracle linux 9.6上安装oracle database 19.3 标准版 docker
linux·数据库·oracle
yenggd9 小时前
Centos7.9系统安装kvm
linux