精彩推荐

一百期Java面试题汇总

SpringBoot内容聚合

IntelliJ IDEA内容聚合

Mybatis内容聚合

接上一篇:从入门到入土(九)手摸手教你搭建RocketMQ双主双从同步集群,不信学不会!

一、为什么要集群

  • 单点存在单点故障问题

  • 集群可以分担压力,提高QPS

  • 主从可以保证消息可靠性,比如只有M没S。M磁盘坏了,那未被消费的消息都丢了。而S可以作为备份。

二、单M模式

1、特点

  • 只有一个Master节点,所以单点故障是致命缺点。

  • 优点:配置简单,方便部署。

  • 缺点:单点故障,一旦Broker重启或者直接宕机了,那会导致整个服务不可用。

2、图解

三、多M模式

1、特点

  • 一个集群无Slave节点,全是Master节点。

  • 优点:配置相对不复杂,单个M宕机或者重启对业务系统无感知,照常提供服务。只是这个broker上如果有消息未被消费的话可能无法继续消费,但是消息不会丢失,持久化到磁盘的。异步刷盘的话会存在少量丢失。

  • 缺点:单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受到受到影响。

2、图解

四、多M多S模式

一个集群既有Master节点又有Slave节点。

1、异步复制

  • 每个 Master 配置一个 Slave,有多对Master-Slave, HA,采用异步/同步复制方式,主备有短暂消息延迟,毫秒级。

  • 优点:即使磁盘损坏,消息丢失的非常少,且消息实时性不会受影响,因为Master 宕机后,消费者仍然可以从 Slave消费,此过程对应用透明。不需要人工干预。性能同多 Master 模式几乎一样。

  • 缺点:Master 宕机,磁盘损坏情况,会丢失少量消息。

2、同步双写

  • 每个 Master 配置一个 Slave,有多对Master-Slave, HA采用同步双写方式,主备都写成功,向应用返回成功。

  • 优点:数据与服务都无单点, Master宕机情况下,消息无延迟,服务可用性与数据可用性都非常高。

  • 缺点:性能比异步复制模式略低,大约低 10%左右,发送单个消息的 RT会略高。目前主宕机后,备机不能自动切换为主机,后续会支持自动切换功能。

  • 要想真正意义的保证消息不丢失,这个同步双写是必须的 。

3、图解

五、queue的分布

一个topic的queue可以分布到多个Broker上。比如一个topic有4个queue,他可能分配到broker-a上三个queue,broker-b上1个queue,这个queue的分配是由broker端决定的。但是为了验证猜想我们可以手动从管控台去创建这个topic,成功的话可以验证我们的猜想。

首先我有2M2S的一个集群

创建topic

创建topic

查看status,可以发现为我们在每个broker上都创建了4个queue,也就是一共8个queue了。

点击【TOPIC CONFIG】更改配置

再次查看就会发现已经生效了,验证了我们的猜想

每个queue的消息都是不一样的,也就是比如你发N条消息,他可能一部分在broker-a上一部分在broker-b上,不管他在哪,消息都是不一样的,不要理解成M-S那种复制。他只是负载均衡将queue分配到了不同的broker上。

END

我知道你 “在看”

从入门到入土(十)RocketMQ集群流程以及核心概念相关推荐

  1. RocketMQ集群详解

    集群特点 (1)NameServer:是一个几乎无状态节点,可集群部署,节点之间无任何信息同步. (2)Broker:部署相对复杂,Broker分为Master与Slave,一个Master可以对应多 ...

  2. RocketMQ集群启动报错:java.lang.RuntimeException: Lock failed,MQ already started

    启动RocketMQ集群后报错: java.lang.RuntimeException: Lock failed,MQ already startedat org.apache.rocketmq.st ...

  3. rocketmq集群安装部署过程(4.0.0版本)、安装中的常见问题举例

    本篇博文参考:http://www.cnblogs.com/quchunhui/p/7126868.html,然后按照自己的环境进行重新编写 准备工作: 下载rocketmq-all-4.0.0-in ...

  4. 双RocketMq集群的搭建

    一.双Master RocketMq集群的搭建 1.服务器环境: 序号 IP 用户名 角色 模式 1 192.168.211.128 root nameServer1,brokerServer1 Ma ...

  5. 从生产故障解锁RocketMQ集群部署的最佳实践

    1.故障描述 RocketMQ 集群采取的部署架构为2主2从,其部署架构如下图所示: 其部署架构中一个非常明显的特点是一台物理机上分别部署了 nameserver,broker 两个进程. 其中一台机 ...

  6. 从年末生产故障解锁RocketMQ集群部署的最佳实践

    [CSDN 编者按]因为一次生产事故,导致年终奖泡汤!在一番问题查找之后,终于找到了罪魁祸首!MQ集群中某一台物理机内存引发的故障,从而导致系统异常重启,而更关键的问题是,为什么一台Broker由于内 ...

  7. RocketMQ 集群告警

    前言 ​对集群健康状况.使用主题.消费组资源的巡检,发现达到阈值则发送告警信息给管理员或者资源申请者.监控是告警的基础,告警的巡检基于前面两篇文章中监控采集到的数据. ​告警的重要性不必过多地赘述,R ...

  8. 阿里二面:RocketMQ 集群 Broker 挂了,会造成什么影响?

    大家好,我是君哥.今天分享 RocketMQ 的 Broker 挂了,会带来什么影响. 面试官:你好,如果 RocketMQ 集群中的一个 Broker 挂了,会造成什么影响呢? 我:Broker 挂 ...

  9. RocketMQ 集群平滑运维

    前言 在 RocketMQ 集群的运维实践中,无论线上 Broker 节点启动和关闭,还是集群的扩缩容,都希望是平滑的,业务无感知.正所谓 "随风潜入夜,润物细无声" ,本文以实际 ...

最新文章

  1. FPGA之道(78)静态时序分析(四)内部时钟相关时序分析
  2. 【一周入门MySQL—2】单表查询
  3. 1-冒泡排序C实现(递增递减的简单转换)
  4. c语言变量radius数据类型,c语言数据类型
  5. Win10+Ubuntu16.04/Ubuntu18.04双系统安装教程
  6. 白山搜索引擎优化收费_在网络推广中,SEO排名优化是成本最低的方式
  7. Libhybris之Glibc和Bionic共存时的TLS问题(四)
  8. c 标签 foreach里面套choose做判断
  9. 迷瘴 详解(C++)
  10. PIE Engine系列1 遥感数据下载器的实现(含源码)
  11. wsimport简单实现WebService
  12. matlab lte rsrp,为什么选择 FieldFox 手持式分析仪?- 更宽带宽,更高精度
  13. GRU 详解+实战(生成汪峰感觉的歌词)
  14. 使用QQ邮箱无法收到Github上发送的验证码?
  15. 使用logisim设计简易CPU
  16. python第三周测试_第三周作业 - 作业 - 信息与计算17数31SWE - 班级博客 - 博客园...
  17. form表单提交,action需要加项目名
  18. python建站与java建站有何不同_Python与JAVA有何区别?
  19. phpcms9.6 ueditor_PHPCMS v9.5.6整合UEditer1.4.3详细教程
  20. 2021-02-08 项目验收文件——应用情况说明

热门文章

  1. ARM:下一代架构也将继续供给华为
  2. 余承东生日朋友圈深夜连发五个“感恩”:这是一个难忘的日子
  3. 阿里之后 “安卓终结者”来了!
  4. 聊天宝解散,多闪、马桶MT还会远吗?
  5. 该!4G假装5G的美国运营商被起诉了
  6. 微信/聊天宝/马桶MT/多闪 社交APP一个不落 被约谈!
  7. C和C++的互相调用【原创】
  8. python中dir用法_Python dir()函数
  9. Java对象初始化详解
  10. 【java】基于JWT的token身份认证方案