1. RocketMQ 角色介绍
四个角色
- Producer:消息生产者
- Consumer:消费者
- Broker:MQ 服务,负责接收、分发消息
- NameServer:负责 MQ 服务之间的协调
2. RocketMQ 架构方案
NameServer Cluster
- NameServer 提供轻量级服务发现和路由。
- 每个名称服务器记录完整的路由信息,提供相应的读写服务,并支持快速存储扩展。
3. RocketMQ 集群部署配置
Broker 配置文件说明
# 所属集群名字brokerClusterName=DefaultCluster# broker 名字,注意此处不同的配置文件填写的不一样brokerName=broker-a|broker-b# 0 表示 Master,>0 表示 SlavebrokerId=0# nameServer 地址,分号分割namesrvAddr=10.10.1.31:9876;10.10.1.32:9876# 在发送消息时,自动创建服务器不存在的 topic,默认创建的队列数defaultTopicQueueNums=4# 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭autoCreateTopicEnable=true# 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGroup=true# Broker 对外服务的监听端口listenPort=10911# 删除文件时间点,默认凌晨 4 点deleteWhen=04# 文件保留时间,默认 48 小时fileReservedTime=120# commitLog 每个文件的大小默认 1GmapedFileSizeCommitLog=1073741824# ConsumeQueue 每个文件默认存 30w 条,根据业务情况调整mapedFileSizeConsumeQueue=300000# destroyMapedFileIntervalFarcibly=120000# redeleteHangedFileInterval=120000# 检测物理文件磁盘空间diskMaxUsedSpaceRatio=88# 存储路径storePathRootDir=/usr/local/alibaba-rocketmq/store# commitLog 存储路径storePathCommitLog=/usr/local/alibaba-rocketmq/store/commitlog# 消费队列存储路径storePathConsumeQueue=/usr/local/alibaba-rocketmq/store/consumequeue# 消费索引存储路径storePathIndex=/usr/local/alibaba-rocketmq/store/index# checkpoint 文件存储路径storeCheckpoint=/usr/local/alibaba-rocketmq/store/checkpoint# abort 文件存储路径abortFile=/usr/local/alibaba-rocketmq/store/abort# 限制的消息大小maxMessageSize=65536# flushCommitLogLeastPages=4# flushConsumeQueueLeastPages=2# flushCommitLogThoroughInterval=10000# flushConsumeQueueThoroughInterval=60000# Broker 的角色# - ASYNC_MASTER 异步复制 Master# - SYNC_MASTER 同步双写 Master# - SLAVEbrokerRole=ASYNC_MASTER# 刷盘方式# - ASYNC_FLUSH 异步刷盘# - SYNC_FLUSH 同步刷盘flushDiskType=ASYNC_FLUSH# checkTransactionMessageEnable=false# 发消息线程池数量# sendMessageThreadPoolNums=128# 拉消息线程池数量pullMessageThreadPoolNums=128