- Rocketmq集群模式
- 1、单点(不推荐,测试使用)
- 2、主从
- 3、双主(不推荐)
- 4、双主双从、多主多从
- 刷盘策略
- 同步刷盘
- 异步刷盘
- 同步方式
- 同步复制
- 异步复制
- 选择
- 单机部署
- 集群部署
- 优点:本地开发测试,配置简单,同步刷盘消息一条都不会丢
- 缺点:不可靠,如果宕机,会导致服务不可用
主节点可收发消息,从节点不能接收消息。 具备 HA。不支持主从切换。
- 优点:同步双写消息不丢失, 异步复制存在少量丢失 ,主节点宕机,从节点可以对外提供消息的消费,但是不支持写入
- 缺点:主备有短暂消息延迟,毫秒级,目前不支持自动切换,需要脚本或者其他程序进行检测然后进行停止broker, 重启让从节点成为主节点
多个 master 节点组成集群,单个 master 节点宕机或者重启对应用没有影响。
- 注意:使用同步刷盘可以保证消息不丢失,同时 Topic 相对应的 queue 应该分布在集群中各个节点,而不是只在某各节点上,否则,该节点宕机会对订阅该 topic 的应用造成影响。
- 优点:所有模式中性能最高。配置简单, 可以靠配置RAID磁盘阵列保证消息可靠,异步刷盘丢失少量消息
- 缺点:单个 master 节点宕机期间,未被消费的消息在节点恢复之前不可用,消息的实时性就受到影响。
- 双主双从
多 master 多 slave 异步复制
在多 master 模式的基础上,每个 master 节点都有至少一个对应的 slave。master节点可读可写,但是 slave 只能读不能写,类似于 mysql 的主备模式。
- 优点:在 master 宕机时,消费者可以从 slave读取消息,消息的实时性不会受影响,性能几乎和多 master 一样。
- 缺点:主备有短暂消息延迟,毫秒级,如果Master宕机,磁盘损坏情况,会丢失少量消息
多 master 多 slave 同步双写
同多 master 多 slave 异步复制模式类似,区别在于 master 和 slave 之间的数据同步方式。 - 优点:同步双写方式,主备都写成功,向应用才返回成功,服务可用性与数据可用性都非常高
- 缺点:性能比异步复制模式略低,主宕机后,备机不能自动切换为主机
同步刷盘和异步刷盘(指的是节点自身数据是同步还是异步存储)
同步刷盘数据写入内存后并未实时写入数据盘,写入数据盘之后才返回写入成功。 数据安全性高。
异步刷盘数据写入内存后即返回写入成功,但此时并未实时写入数据盘。 数据可能丢失,性能高。
同步方式同步双写和异步复制(指的一组 master 和 slave 之间数据的同步)
同步复制数据安全性高,性能低一点
异步复制数据可能丢失,性能高
选择保证数据可靠情况:同步刷盘和同步双写的方式,但性能会较其他方式低。
保证性能又可靠的情况下,采用同步双写,异步刷盘
目前采用这种方式:同步双写,异步刷盘
暂定
集群部署暂定



