编辑
2025-12-17
RocketMQ
00

目录

一、RocketMQ组件
二、RocketMQ下载
三、RocketMQ部署
四、启动RocketMQ集群
修改 broker-a.properties(主 A)
修改 broker-a-s.properties(从 A)
修改broker-b.properties(主 B)
修改broker-b-s.properties(从 B)
创建存储目录(适配你的路径)
启动 Broker

一、RocketMQ组件

RocketMQ基本组件

  • Topic:主题,消息归类的基本单元

  • Queue:队列,消息存储和传输的实际容器,也是消息的最小存储单元

  • Producer:生产者,用来构建并传输消息

  • Consumer:消费者,用来接收并处理消息

  • ConsumerGroup:消费者组,消费者组是RocketMQ中承载多个消费行为一致的消费者负载均衡分组。和消费者不同,消费者组是一个逻辑概念

  • NameServer:可以理解成注册中心,负责更新和发现Broker服务。在NameErver的集群中,NameServer与NameServer之间是没有任何通信的,它是无状态的

  • Broker集群:Broker由一个或多个Broker组成集群,每一个Broker就是一个Kafka实例

主题(Topic)和队列(Queue)

  • 在RocketMQ中要实现消息的发送与订阅,必须首先创建Topic。

  • 因为Topic是RocketMQ进行消息归类的基本单元。通过Topic接收消息生产者发布的消息,并将消息转发给消费者。

  • 比如任务类的消息,就指定好任务类的topic,生产者根据topic把消息发送到队列,消费者订阅这个topic消费消息。

二、RocketMQ下载

官网地址:https://rocketmq.apache.org/zh/

或者阿里官网下载:https://mirrors.aliyun.com/apache/rocketmq/5.3.4/ image.png

三、RocketMQ部署

上传下载的包的到服务器上,解压后进入bin目录下

js
cd /rocketmq/rocketmq-all-5.3.4-bin-release/bin

修改两个文件配置

js
[root@k8s-node04 bin]# ls -l *run* -rwxr-xr-x 1 root root 3332 1127 11:32 runbroker.cmd -rwxr-xr-x 1 root root 4914 1127 11:32 runbroker.sh -rwxr-xr-x 1 root root 2876 1127 11:32 runserver.cmd -rwxr-xr-x 1 root root 4461 1127 11:32 runserver.sh

image.png

自己电脑修改它内存的大小,默认8G太多了都改成1g

js
vi runbroker.sh

image.png

js
vi runserver.sh

image.png

四、启动RocketMQ集群

先启动注册中心

js
nohup ./mqnamesrv &

image.png

然后进入conf目录

js
cd /rocketmq/rocketmq-all-5.3.4-bin-release/conf

这类目录是 RocketMQ 官方提供的 Broker 集群部署配置模板,命名规则:m=Master(主节点)、s=Slave(从节点)、async=异步复制、sync=同步复制、noslave=无从节点,用于快速搭建不同架构的 Broker 集群:

image.png

image.png

修改 broker-a.properties(主 A)

js
vi /rocketmq/rocketmq-all-5.3.4-bin-release/conf/2m-2s-sync/broker-a.properties
yml
# 1. 指定NameServer地址(必填) namesrvAddr=192.168.183.120:9876 # 2. 指定Broker内网IP brokerIP1=192.168.183.120 # 3. Broker名称(固定为broker-a) brokerName=broker-a # 4. 主节点标识 brokerId=0 # 5. 消息存储根目录(适配你的RocketMQ根路径) storePathRootDir=/rocketmq/rocketmq-all-5.3.4-bin-release/store/a # 6. Broker监听端口 listenPort=10911 # 7. 同步复制 brokerRole=SYNC_MASTER # 8. 刷盘策略(测试用异步更高效) flushDiskType=ASYNC_FLUSH haListenPort=10915

修改 broker-a-s.properties(从 A)

js
vi /rocketmq/rocketmq-all-5.3.4-bin-release/conf/2m-2s-sync/broker-a-s.properties
yml
namesrvAddr=192.168.183.120:9876 brokerIP1=192.168.183.120 brokerName=broker-a brokerId=1 storePathRootDir=/rocketmq/rocketmq-all-5.3.4-bin-release/store/a-s listenPort=10912 brokerRole=SLAVE flushDiskType=ASYNC_FLUSH haListenPort=10916

修改broker-b.properties(主 B)

js
vi /rocketmq/rocketmq-all-5.3.4-bin-release/conf/2m-2s-sync/broker-b.properties
js
namesrvAddr=192.168.183.120:9876 brokerIP1=192.168.183.120 brokerName=broker-b brokerId=0 storePathRootDir=/rocketmq/rocketmq-all-5.3.4-bin-release/store/b listenPort=10913 brokerRole=SYNC_MASTER flushDiskType=ASYNC_FLUSH haListenPort=10917

修改broker-b-s.properties(从 B)

js
vi /rocketmq/rocketmq-all-5.3.4-bin-release/conf/2m-2s-sync/broker-b-s.properties
js
namesrvAddr=192.168.183.120:9876 brokerIP1=192.168.183.120 brokerName=broker-b brokerId=1 storePathRootDir=/rocketmq/rocketmq-all-5.3.4-bin-release/store/b-s listenPort=10914 brokerRole=SLAVE flushDiskType=ASYNC_FLUSH haListenPort=10918

创建存储目录(适配你的路径)

js
# 按配置中的路径创建4个存储目录 mkdir -p /rocketmq/rocketmq-all-5.3.4-bin-release/store/{a,a-s,b,b-s} # 授权避免权限不足 chmod 777 -R /rocketmq/rocketmq-all-5.3.4-bin-release/store

启动 Broker

js
# 进入bin目录(核心!必须在bin目录执行启动命令) cd /rocketmq/rocketmq-all-5.3.4-bin-release/bin # 1. 启动主A nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a.properties > /tmp/broker-a.log 2>&1 & # 2. 启动从A(等待10秒) sleep 10 nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a-s.properties > /tmp/broker-a-s.log 2>&1 & # 3. 启动主B(等待10秒) sleep 10 nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b.properties > /tmp/broker-b.log 2>&1 & # 4. 启动从B(等待10秒) sleep 10 nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b-s.properties > /tmp/broker-b-s.log 2>&1 &

本文作者:松轩(^U^)

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

Document