RocketMq的数据刷盘策略和复制策略以及RAID介绍

一 RocketMq的数据刷盘策略和复制策略

1.1 数据刷盘

刷盘策略指的是 broker 中消息的 落盘 方式,即消息发送到 broker 内存后消息持久化到磁盘的方式。分为
同步刷盘与异步刷盘:
同步刷盘:当消息持久化到 broker 的磁盘后才算是消息写入成功。
异步刷盘:当消息写入到 broker 的内存后即表示消息写入成功,无需等待消息持久化到磁盘。

1.2 复制策略

复制策略是 Broker Master Slave 间的数据同步方式。
分为同步复制与异步复制:
同步复制:消息写入 master 后, master 会等待 slave 同步数据成功后才向 producer 返回成功 ACK
异步复制:消息写入 master 后, master 立即向 producer 返回成功 ACK ,无需等待 slave 同步数据成
功。

二 Broker的集群模式

2.1 集群模式

Master
只有一个 broker (其本质上就不能称为集群)。这种方式也只能是在测试时使用,生产环境下不能使
用,因为存在单点问题。
Master
broker 集群仅由多个 master 构成,不存在 Slave 。同一 Topic 的各个 Queue 会平均分布在各个 master 节点
上。
优点:配置简单,单个 Master 宕机或重启维护对应用无影响 ,在磁盘配置为RAID10时,即使机器
宕机不可恢复情况下,由于RAID10磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步
刷盘一条不丢),性能最高;
缺点:单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅(不可消费),
消息实时性会受到影响。
Master Slave 模式 - 异步复制
broker 集群由多个 master 构成,每个 master 又配置了多个 slave (在配置了 RAID 磁盘阵列的情况下,一 个master 一般配置一个 slave 即可)。 master与slave的关系是主备关系,即master负责处理消息的读写 请求,而slave仅负责消息的备份与master宕机后的角色切换。
异步复制即前面所讲的 复制策略 中的 异步复制策略 ,即消息写入 master 成功后, master立即向
producer返回成功ACK,无需等待slave同步数据成功。
该模式的最大特点之一是,当 master 宕机后 slave 能够 自动切换 master 。不过由于 slave master 的同 步具有短暂的延迟(毫秒级),所以当master 宕机后,这种异步复制方式可能会存在少量消息的丢失问题。
Master Slave 模式 - 同步双写
该模式是 Master Slave 模式 同步复制 实现。所谓 同步双写 ,指的是消息写入 master 成功后,
master 会等待 slave 同步数据成功后才向 producer 返回成功 ACK ,即 master slave 都要写入成功后才会 返回成功ACK ,也即 双写
该模式存在一个大的问题:对于目前的版本, Master宕机后,Slave不会自动切换到Master。

三 RAID矩阵

3.1 RAID矩阵

廉价冗余磁盘阵列 ( Redundant Array of Inexpensive Disks ), RAID 主要利用 镜像、数据条带和数据校验 三种技术来获取高性能、可靠性、容错能力和扩展 性,根据对这三种技术的使用策略和组合架构,可以把 RAID 分为不同的等级,以满足不同数据应用的 需求。
RAID10 是一个 RAID1 RAID0 的组合体,所以它继承了 RAID0 的快速和 RAID1 的安全。
简单来说就是,先做 条带 ,再做 镜像 。发即将进来的数据先分散到不同的磁盘,再将磁盘中的数据做镜像。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RAID是指独立冗余磁盘阵列(Redundant Array of Independent Disks),是一种通过将多个磁盘组合起来以提供更大存储容量、更高性能、更好数据可靠性的技术。RAID技术被广泛应用于服务器、存储设备、工作站等领域。下面是几种常见的RAID硬盘阵列策略: 1. RAID 0:又称条带化(Stripe)阵列,将多个硬盘组合起来,数据分割成一定大小的块,每个块依次存储到各个硬盘上。RAID 0阵列具有高性能和大存储容量的特点,但是数据可靠性较低,一旦其中一块硬盘出现问题,整个阵列的数据都会丢失。 2. RAID 1:又称镜像(Mirror)阵列,将两个硬盘组合成一个阵列,数据同时写入到两个硬盘中。RAID 1阵列具有很高的数据可靠性,一旦其中一个硬盘出现问题,另一个硬盘仍可以继续工作,保证数据的安全性。但是RAID 1阵列的存储能力只有一个硬盘的容量。 3. RAID 5:将多个硬盘组合起来,其中一个硬盘用于存储奇偶校验信息,保证数据的完整性和可靠性。RAID 5阵列具有较高的性能和数据可靠性,可以容忍其中一个硬盘出现问题,但是多个硬盘同时出现问题时,数据仍然会丢失。 4. RAID 6:类似于RAID 5,但是使用两个硬盘来存储奇偶校验信息,提供更高的数据可靠性和容错能力。 5. RAID 10:将多个硬盘分为两组,每组内采用镜像(RAID 1)策略,然后在两组之间采用条带化(RAID 0)策略RAID 10阵列具有很高的性能和数据可靠性,可以容忍多个硬盘出现问题,但是需要更多的硬盘来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值