RocketMQ的集群模式

 

错误的集群部署方式

 

 在生产环境中,RocketMQ常被用于集群化部署,但是有一种部署方式却是错误的。即多主无从

RocketMQ的集群模式

如图,有2个主broker。如果2个broker中都已经存储了不同的消息,这时其中一个broker崩了,那么这个broker里面的数据就会丢失,消费者无法从其他的broker中获取所需的数据

 

 

正确的集群部署方式

 

多主多从

这种方式避免了Master损坏导致的数据丢失

 RocketMQ的集群模式

多主多从的实现有两种方式

  • 异步复制

数据总是先存入到Master,再经过几毫秒的延迟后存入到对应的Slave。这个过程不需要人工干预,性能很高。但这样也存在缺点,Master宕机可能会丢失少量的数据。

  • 同步双写

每次写入数据要么主从都写成功,要么都不写入成功。这样的做法大大减少了异常情况下数据的丢失量,但缺点是性能会比异步复制略低