专栏首页漫漫架构路RocketMQ详解(3)——RocketMQ集群模型与搭建

RocketMQ详解(3)——RocketMQ集群模型与搭建

RocketMQ详解(3)——RocketMQ集群模型与搭建

一. RocketMQ集群模型

RocketMQ天然支持分布式集群模型,其中主节点可读可写,从节点只可读,不可写,类似MySQL的主从模式。RocketMQ主要支持以下几种集群模型:

  1. 单机模式(M) 这种方式风险较大,一旦Broker重启或者宕机时,会导致整个消息服务不可用,不建议在生产环境中使用。
  2. 双Master模式/多Master模式(2M)
    • 一个集群无Slave,全是Master,例如2个Master或者3个Master。
    • 优点:配置简单,单个Master宕机或者重启对应用无影响,在磁盘配置为RAID10时,即使机器宕机不可恢复情况下,由于RAID10磁盘可靠性非常高,消息也不会丢失(异步刷盘丢失少量消息,同步刷盘完全不丢失),性能最高。
    • 缺点:单台机器宕机时,这台机器上未被消费的消息在机器恢复之前不可订阅,消息的实时性会受到影响。
  3. 多Master多Slave模式,异步复制(NM-NS,ASYNC)
    • 每个Master配备一个Slave,共有多对Master-Slave,HA采用异步复制方式,主从有短暂消息延迟,毫秒级别。
    • 优点:即使磁盘损坏,消息的丢失也非常少,而且消息的实时性不会受到影响,因为Master宕机后,消费者仍然可以从Slave中消费消息,此过程对应用完全透明,不需要人工干预,性能同多Master模式几乎一样。
    • 缺点:Master宕机后,如果磁盘出现损坏,可能丢失少量消息。
  4. 多Master多Slave模式,同步双写(NM-NS,SYNC)
    • 每个Master配备一个Slave,共有多对Master-Slave,HA采用同步双写机制,主从都写入消息成功后,再向应用返回ACK。
    • 优点:数据与服务都无单点故障问题,Master宕机情况下,消息无延迟,服务可用性和数据可用性都非常高。
    • 缺点:性能比异步复制略低,大概低10%,发送单个消息的RT会略高。目前宕机情况下,从节点不能自动切换成主节点,后续会支持自动切换功能。
  5. 双主双从模式(2M-2S)
  6. 多主多从模式(NM-NS)

二. 集群环境搭建

参考博客:https://blog.csdn.net/qiushisoftware/article/details/78944579,里面详细介绍了搭建双Master的RocketMQ集群的过程,本文不再赘述。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Redis哨兵机制

    张申傲
  • RocketMQ详解(2)——RocketMQ核心概念

    张申傲
  • MySQL 主从架构原理

    上图展示的是 MySQL 的主从切换流程。在 State-1 中,客户端的读写都直接访问节点 A,而节点 B 是 A 的备库,只是将 A 的更新都同步过来,到本...

    张申傲
  • 3分钟解决MySQL 1062 主从错误

    1062错误----主键冲突,出现这种情况就是从库出现插入操作,主库又重新来了一遍,iothread没问题,sqlthread出错

    py3study
  • 使用replicate-rewrite-db 实现复制映射 + Replicate_Wild_Do_Table实现复制过滤

    业务方有个需求,需要将node1上的employees库的departments 、dept_manager 这2张表同步到 node2 的 hellodb 库...

    二狗不要跑
  • RocketMQ实战(一)

    RocketMQ作为一款分布式的消息中间件(阿里的说法是不遵循任何规范的,所以不能完全用JMS的那一套东西来看它),经历了Metaq1.x、Metaq2.x的发...

    Java团长
  • 案例:推进GTID解决MySQL主主不同步问题

    之前文章介绍过MySQL修改lower_case_table_names参数,如果之前大写存储的表将无法识别,需要特殊处理。 最近遇到一例应用开发人员在修改这...

    Alfred Zhao
  • show slave status 详解 【MySQL5.7】

    其值是通过将服务器当前的时间戳与二进制日志中的事件的时间戳相对比得到的【MySQL手册上说的是从库SQL线程与IO线程所处理的最近的日志事件的时间戳差】。

    二狗不要跑
  • mysql 复制

    MySQL的复制功能是构建基于MySQL的大规模、高性能应用的基础。复制功能不仅有利于构建高性能的应用,同时也是高可用性、可扩展性、灾难恢复、备份以及数据仓库等...

    魔王卷子
  • MySQL主从报错解决:Table ‘mysql.gtid_slave_pos’ doesn’t exist

    给内部一个数据库做异地热备,热备部分采用了 MariaDB 的 galera 集群模式。然后挑选其中一台作为 Slave 和深圳主集群做主从同步。

    张戈

扫码关注云+社区

领取腾讯云代金券