
RocketMQ的高可用性和扩展性体现在Client端和Server端。Producer和Consumer通过Nameserver获取路由信息并与Broker建立长连接。Producer支持分布式部署,Consumer进行rebalance分担压力。Server端,Nameserver无状态,Broker定期上报心跳。Broker有Master和Slave角色,支持Sync-Master和Async-Master模式,以及Sync-Flush和Async-Flush刷盘策略。Broker扩展通过增加新的Master-Slave对实现,高可用性通过多对Broker-MS上的Topic创建和Slave在Master故障时提供读服务保障。