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左右
相关推荐
方竞37 分钟前
Linux空口抓包方法
linux·空口抓包
海岛日记2 小时前
centos一键卸载docker脚本
linux·docker·centos
AttackingLin2 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
贰十六2 小时前
笔记:Centos Nginx Jdk Mysql OpenOffce KkFile Minio安装部署
笔记·nginx·centos
学Linux的语莫3 小时前
Ansible使用简介和基础使用
linux·运维·服务器·nginx·云计算·ansible
踏雪Vernon4 小时前
[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker编译环境镜像下载以及使用方式
linux·docker·容器·harmonyos
学Linux的语莫4 小时前
搭建服务器VPN,Linux客户端连接WireGuard,Windows客户端连接WireGuard
linux·运维·服务器
legend_jz4 小时前
【Linux】线程控制
linux·服务器·开发语言·c++·笔记·学习·学习方法
Komorebi.py4 小时前
【Linux】-学习笔记04
linux·笔记·学习