其他分享
首页 > 其他分享> > 04第二章:03_集群搭建理论

04第二章:03_集群搭建理论

作者:互联网

一、集群

二、数据复制与刷盘策略

复制策略

复制策略是 Broker 的 Master 与 Slave 间的数据同步方式。分为同步复制与异步复制:

刷盘策略

刷盘策略指的是 broker 中消息的落盘方式,即消息发送到 broker 内存后消息持久化到磁盘的方式。分为同步刷盘与异步刷盘:

1)异步刷盘策略会降低系统的写入延迟,RT 变小,提高了系统的吞吐量

2)消息写入到 Broker 的内存,一般是写入到了 PageCache

3)对于异步刷盘策略,消息会写入到 PageCache 后立即返回成功 ACK。但并不会立即做落盘操作,而是当 PageCache 到达一定量时会自动进行落盘。

三、Broker 集群模式

根据 Broker 集群中各个节点间关系的不同,Broker 集群可以分为以下几类:

单 Master

只有一个 broker(其本质上就不能称为集群)。这种方式也只能是在测试时使用,生产环境下不能使用,因为存在单点问题。

多 Master

broker 集群仅由多个 master 构成,不存在 Slave。同一 Topic 的各个 Queue 会平均分布在各个 master 节点上。

以上优点的前提是,这些 Master 都配置了 RAID 磁盘阵列。如果没有配置,一旦出现某 Master 宕机,则会发生大量消息丢失的情况。

多 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 宕机后,这种异步复制方式可能会存在少量消息的丢失问题。

Slave 从 Master 同步的延迟越短,其可能丢失的消息就越少

对于 Master 的 RAID 磁盘阵列,若使用的也是异步复制策略,同样也存在延迟问题,同样也可能会丢失消息。但 RAID 阵列的秘诀是微秒级的(因为是由硬盘支持的),所以其丢失的数据量会更少。

多 Master 多 Slave 模式-同步双写

该模式是多 Master 多 Slave 模式的同步复制实现。所谓同步双写,指的是消息写入 master 成功后,master 会等待 slave 同步数据成功后才向 producer 返回成功 ACK,即 master 与 slave 都要写入成功后才会返回成功 ACK,也即双写

该模式与异步复制模式相比,优点是消息的安全性更高,不存在消息丢失的情况。但单个消息的 RT 略高,从而导致性能要略低(大约低 10%)。

该模式存在一个大的问题:对于目前的版本,Master 宕机后,Slave不会自动切换到 Master。

最佳实践

一般会为 Master 配置 RAID10 磁盘阵列,然后再为其配置一个 Slave。即利用了 RAID10 磁盘阵列的高效、安全性,又解决了可能会影响订阅的问题。

1)RAID 磁盘阵列的效率要高于 Master-Slave 集群。因为 RAID 是硬件支持的。也正因为如此, 所以 RAID 阵列的搭建成本较高。

2)多 Master+RAID 阵列,与多 Master 多 Slave 集群的区别是什么?

  • 多 Master+RAID 阵列,其仅仅可以保证数据不丢失,即不影响消息写入,但其可能会影响到消息的订阅。但其执行效率要远高于多 Master 多 Slave 集群

  • 多 Master 多 Slave 集群,其不仅可以保证数据不丢失,也不会影响消息写入。其运行效率要低于多 Master+RAID 阵列

标签:异步,Slave,04,03,写入,Master,消息,master,第二章
来源: https://www.cnblogs.com/niujifei/p/16514961.html