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消费消息。
官网地址:https://rocketmq.apache.org/zh/
或者阿里官网下载:https://mirrors.aliyun.com/apache/rocketmq/5.3.1/

上传下载的包的到服务器上,解压后进入bin目录下
jscd /rocketmq/rocketmq-all-5.3.1-bin-release/bin
修改两个文件配置
js[root@k8s-node04 bin]# ls -l *run*
-rwxr-xr-x 1 root root 3332 11月 27 11:32 runbroker.cmd
-rwxr-xr-x 1 root root 4914 11月 27 11:32 runbroker.sh
-rwxr-xr-x 1 root root 2876 11月 27 11:32 runserver.cmd
-rwxr-xr-x 1 root root 4461 11月 27 11:32 runserver.sh

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

jsvi runserver.sh

先启动注册中心
jsnohup ./mqnamesrv &

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


jsvi /rocketmq/rocketmq-all-5.3.1-bin-release/conf/2m-2s-sync/broker-a.properties
yml# ===================== 核心基础配置 =====================
# NameServer地址(单节点)
namesrvAddr=192.168.183.120:9876
# Broker内网IP(单服务器可省略,自动识别,建议显式指定)
brokerIP1=192.168.183.120
# Broker名称(主从节点必须一致)
brokerName=broker-a
# 节点类型:0=主节点,1=从节点
brokerId=0
# 消息存储根目录(注意:替换为你的RocketMQ实际安装路径,5.3.4则改5.3.4)
storePathRootDir=/rocketmq/rocketmq-all-5.3.1-bin-release/store/a
# 业务监听端口(主A专属,避免冲突)
listenPort=10911
# HA监听端口(主A专属)
haListenPort=10915
# ===================== 集群模式配置 =====================
# 同步复制模式(2m-2s-sync核心:主节点必须为SYNC_MASTER)
brokerRole=SYNC_MASTER
# 刷盘策略:ASYNC_FLUSH(异步,测试用)/SYNC_FLUSH(同步,生产推荐)
flushDiskType=ASYNC_FLUSH
# ===================== 5.x版本适配配置 =====================
# 关闭5.x废弃的VIP通道(必配,避免连接异常)
isVIPChannel=false
# 日志子路径(避免根目录混乱,自动基于storePathRootDir生成)
storePathCommitLog=${storePathRootDir}/commitlog
storePathConsumeQueue=${storePathRootDir}/consumequeue
storePathIndex=${storePathRootDir}/index
# 日志删除策略:凌晨4点删除,保留72小时(避免磁盘占满)
deleteWhen=04
fileReservedTime=72
# 线程池优化(提升并发处理能力)
sendMessageThreadPoolNums=16
brokerClientThreadPoolNums=8
jsvi /rocketmq/rocketmq-all-5.3.1-bin-release/conf/2m-2s-sync/broker-a-s.properties
bash# ===================== 核心基础配置 =====================
# NameServer地址(和主节点一致)
namesrvAddr=192.168.183.120:9876
# Broker内网IP(和主节点一致)
brokerIP1=192.168.183.120
# Broker名称(必须和主A一致)
brokerName=broker-a
# 节点类型:从节点固定为1
brokerId=1
# 消息存储根目录(从节点独立路径)
storePathRootDir=/rocketmq/rocketmq-all-5.3.1-bin-release/store/a-s
# 业务监听端口(从A专属)
listenPort=10912
# HA监听端口(从A专属)
haListenPort=10916
# ===================== 集群模式配置 =====================
# 从节点固定为SLAVE
brokerRole=SLAVE
# 刷盘策略(从节点建议和主节点一致)
flushDiskType=ASYNC_FLUSH
# ===================== 5.x版本适配配置 =====================
isVIPChannel=false
storePathCommitLog=${storePathRootDir}/commitlog
storePathConsumeQueue=${storePathRootDir}/consumequeue
storePathIndex=${storePathRootDir}/index
deleteWhen=04
fileReservedTime=72
sendMessageThreadPoolNums=16
brokerClientThreadPoolNums=8
jsvi /rocketmq/rocketmq-all-5.3.1-bin-release/conf/2m-2s-sync/broker-b.properties
yml# ===================== 核心基础配置 =====================
namesrvAddr=192.168.183.120:9876
brokerIP1=192.168.183.120
brokerName=broker-b
brokerId=0
storePathRootDir=/rocketmq/rocketmq-all-5.3.1-bin-release/store/b
listenPort=10913
haListenPort=10917
# ===================== 集群模式配置 =====================
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
# ===================== 5.x版本适配配置 =====================
isVIPChannel=false
storePathCommitLog=${storePathRootDir}/commitlog
storePathConsumeQueue=${storePathRootDir}/consumequeue
storePathIndex=${storePathRootDir}/index
deleteWhen=04
fileReservedTime=72
sendMessageThreadPoolNums=16
brokerClientThreadPoolNums=8
jsvi /rocketmq/rocketmq-all-5.3.1-bin-release/conf/2m-2s-sync/broker-b-s.properties
yml# ===================== 核心基础配置 =====================
namesrvAddr=192.168.183.120:9876
brokerIP1=192.168.183.120
brokerName=broker-b
brokerId=1
storePathRootDir=/rocketmq/rocketmq-all-5.3.1-bin-release/store/b-s
listenPort=10914
haListenPort=10918
# ===================== 集群模式配置 =====================
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
# ===================== 5.x版本适配配置 =====================
isVIPChannel=false
storePathCommitLog=${storePathRootDir}/commitlog
storePathConsumeQueue=${storePathRootDir}/consumequeue
storePathIndex=${storePathRootDir}/index
deleteWhen=04
fileReservedTime=72
sendMessageThreadPoolNums=16
brokerClientThreadPoolNums=8
js# 按配置中的路径创建4个存储目录
mkdir -p /rocketmq/rocketmq-all-5.3.1-bin-release/store/{a,a-s,b,b-s}
# 授权避免权限不足
chmod 777 -R /rocketmq/rocketmq-all-5.3.1-bin-release/store
js# 进入bin目录(核心!必须在bin目录执行启动命令)
cd /rocketmq/rocketmq-all-5.3.1-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 &
jsss -tlnp | grep -E "10911|10912|10913|10914|10915|10916|10917|10918"

https://github.com/apache/rocketmq-dashboard/tags
下载 + 解压 RocketMQ Dashboard 1.0.0
启动
jsjava -jar rocketmq-dashboard-1.0.0.jar \
--rocketmq.config.namesrvaddr=127.0.0.1:9876 \
--rocketmq.config.isvipchannel=false \
--rocketmq.config.loginrequired=false > /tmp/dashboard.log 2>&1 &
打开网页访问成功

本文作者:松轩(^U^)
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!