1、图示

2、Broker 主从架构
1. 核心角色分工
-
Master 节点:
- 处理所有写操作(生产者消息写入)
- 处理读请求(消费者消息拉取)
- 负责向 Slave 节点同步数据
-
Slave 节点:
- 只读节点(消费请求分流)
- 实时从 Master 同步消息数据
- Master 宕机时可升级为 Master
2. 数据同步机制
同步模式 | 原理 | 特点 | 适用场景 |
---|---|---|---|
异步复制 | Master 写入即返回成功,后台同步到 Slave | 低延迟、高吞吐 | 常规业务场景 |
同步双写 | 等待 Slave 写入成功后才返回响应 | 数据强一致、更高可靠性 | 金融/交易类场景 |
java
// Broker 配置示例(broker.conf)
brokerRole=SYNC_MASTER // 同步双写模式
# brokerRole=ASYNC_MASTER // 异步复制模式
3. 故障转移流程
- 1.故障检测 :NameServer 通过心跳检测发现 Master 宕机(120秒超时)
-
2.路由更新 :
- NameServer 标记该 Broker 组不可写
- 将 Slave 升级为可读节点
- 3.消费者切换 :消费者自动重连到 Slave 继续消费