RocketMQ的集群模式

    科技2022-08-31  110

    1 单点(不推荐)

    优点 除了配置简单没什么优点,适合个人学习使用。缺点 不可靠,该机器重启或宕机,将导致整个服务不可用。无 HA,测试环境玩玩就行。

    2 主从

    主节点可收发消息,从节点不能接收消息。 具备 HA。不支持主从切换。

    3 双主(不推荐)

    多个 master 节点组成集群,单个 master 节点宕机或者重启对应用没有影响。

    优点 所有模式中性能最高缺点 单个 master 节点宕机期间,未被消费的消息在节点恢复之前不可用,消息的实时性就受到影响。

    注意:使用同步刷盘可以保证消息不丢失,同时 Topic 相对应的 queue 应该分布在集群中各个节点,而不是只在某各节点上,否则,该节点宕机会对订阅该 topic 的应用造成影响。

    4 双主双从、多主多从

    双主双从

    多 master 多 slave 异步复制

    在多 master 模式的基础上,每个 master 节点都有至少一个对应的 slave。master节点可读可写,但是 slave 只能读不能写,类似于 mysql 的主备模式。

    优点 在 master 宕机时,消费者可以从 slave读取消息,消息的实时性不会受影响,性能几乎和多 master 一样。缺点 使用异步复制的同步方式有可能会有消息丢失的问题。

    多 master 多 slave 同步双写

    同多 master 多 slave 异步复制模式类似,区别在于 master 和 slave 之间的数据同步方式。

    优点 同步双写的同步模式能保证数据不丢失。

    缺点 发送单个消息 RT 会略长,性能相比异步复制低10%左右。

    刷盘策略 同步刷盘和异步刷盘(指的是节点自身数据是同步还是异步存储)

    同步方式 同步双写和异步复制(指的一组 master 和 slave 之间数据的同步)

    注意:要保证数据可靠,需采用同步刷盘和同步双写的方式,但性能会较其他方式低。

    公众号-JavaEdge 认证博客专家 博客专家 慕课网认证作者 腾讯云 最佳作者 1.经历:19届双一流本科,曾在百度、携程、华为等大厂搬金砖2.涉猎领域:Java生态各种中间件原理、框架源码、微服务、中台等架构设计及落地实战,只生产硬核干货!3.开源社区荣誉:阿里云栖社区博客专家、腾讯云+社区2019年度最佳作者、慕课网认证作者、百万流量万粉博客专家,简书优秀创作者兼《程序员》专题管理员4.著作:在牛客网著有《Java源码面试解析指南》,目前已有上千人在学习,已助众多读者成功拿到满意offer~
    Processed: 0.009, SQL: 9