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左右
相关推荐
wdxylb1 小时前
云原生俱乐部-shell知识点归纳(1)
linux·云原生
飞雪20072 小时前
Alibaba Cloud Linux 3 在 Apple M 芯片 Mac 的 VMware Fusion 上部署的完整密码重置教程(二)
linux·macos·阿里云·vmware·虚拟机·aliyun·alibaba cloud
路溪非溪2 小时前
关于Linux内核中头文件问题相关总结
linux
Lovyk5 小时前
Linux 正则表达式
linux·运维
Fireworkitte6 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9006 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char6 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
淮北也生橘128 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
华强笔记11 小时前
Linux内存管理系统性总结
linux·运维·网络
十五年专注C++开发12 小时前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建