Redis集群的高可用性

1*hM8LWoUsoZ6aleTwO91zag.png

在本文中,我们将研究以下主题:

?Redis集群的高可用性。?Redis集群的自动故障转移。?Redis集群中的脑裂问题及其解决方案。

问题: Redis-Cluster如何提供高可用性?

答案: 高可用性是指集群在面临某些故障时仍能保持操作能力。例如,集群可以检测到主分片失败并在无需外部手动干预的情况下将副本提升为主分片。

问题: Redis-Cluster如何提供自动故障转移?

答案: Redis-Cluster可以迅速了解主分片何时失败,并且可以将其副本晋升为新主分片。

?假设我们为每个主分片都有一个副本。如果我们的数据分布在三个Redis服务器之间,我们将需要一个六成员的集群,其中三个主分片和三个副本。?所有六个分片通过TCP相互连接,并不断地相互ping并交换消息。这些消息允许集群确定哪些分片是活动的。?当足够多的分片报告给定主分片未响应它们时,它们可以同意触发故障转移,并将分片的副本提升为新的主分片。在触发故障转移之前需要同意离线同行的分片数量在集群创建时是可配置的。

Redis集群的高可用性
1*QD1TSPPL3E3DNtPtKu-AuQ.png

问题: 用Redis-Cluster演示脑裂的情况?

答案: 以下是脑裂情况的演示方式:

步骤#1: 想象一下,我们有一个具有三个主分片和每个主分片一个副本的Redis-Cluster。总体而言,我们的Redis集群是一个六成员的集群,其中有三个主分片和三个副本。进一步想象,网络分区已经发生,即左侧的组将无法与右侧的组中的分片通信。

Redis集群的高可用性
1*JVZb2ybfQs0wyfaYlnDZWA.png

?现在,两个集群组都认为它们处于脱机状态,两者都将触发任何主分片的故障转移,导致左侧具有所有主分片,右侧也将具有所有主分片。

Redis集群的高可用性
1*GqrUZzISIv5vV0iSJzHkqw.png

步骤#2: 两侧认为它们具有所有主分片,将继续接收修改数据的客户端请求。这是一个问题,因为也许客户端A在左侧将键foo的值设置为bar,但客户端B在右侧将相同键的值设置为baz

Redis集群的高可用性
1*tBOint-zDVOeJPpBjLxLdA.png

步骤#3: 当网络分区被删除并且分片尝试重新连接时,我们将会有冲突,因为我们有两个保存不同数据的分片,声称是主分片,我们不会知道哪些数据是有效的。这称为脑裂情况,在分布式系统的世界中是一个非常常见的问题。

Redis集群的高可用性
1*4xxDLOZSVS2uSMCImV1hZw.png

问题: 如何解决脑裂的问题?

答案: 在集群中保持奇数个主分片和每个主分片两个副本。以下是解决此问题的详细解决方案:

?为防止在Redis集群中发生一种称为脑裂情况的情况,始终保持奇数个分片。?现在,当我们得到网络分割时,左侧和右侧的组将进行计数,并查看它们是在更大的(多数)还是更小的组(少数)??如果特定组处于少数,它将不尝试触发故障转移,并且将不接

受任何客户端写入请求。

Redis集群的高可用性
1*h8gJC228OUjZkKDj_TobjQ.png

让我们来看看下面的集群:

1*RZVeSiRZ1SVWXxLC3hpZgg.png

现在,假设发生网络分割,如下所示:

1*7MnC9ZYxESslcUlLZivRBA.png

?在这里,左侧组(节点集合)处于少数,因此它不会尝试触发故障转移,并将停止接受任何客户端写入请求。?右侧组(节点集合)处于多数,因此它具有触发任何主分片故障转移的权限和能力。

原创文章,作者:小技术君,如若转载,请注明出处:https://www.sudun.com/ask/33850.html

(0)
小技术君's avatar小技术君
上一篇 2024年4月12日 下午6:04
下一篇 2024年4月12日 下午6:06

相关推荐

  • 试论CDN服务器所在地法院的管辖依据

    来源 知产财经  作者张海燕 山东大学法学院教授、山东大学交叉法学研究院常务副院长 在侵害作品信息网络传播权纠纷案中,CDN服务器是否属于《侵害信息网络传播权规定》第15条所规定的…

    2024年4月25日
    0
  • “Pull”和“Push”支付的区别

    下图展示了“Pull”和“Push”支付的工作原理。 当我们在商家处刷信用卡/借记卡时,这是一种“Pull”支付,资金从持卡人的账户发送到商家。商家从持卡人的账户中取款,而持卡人批…

    CDN资讯 2024年4月17日
    0
  • 实现速率限制的初学者指南

    如果你之前接触过后端服务,你可能听说过速率限制(Rate Limit)这个术语。 如果没有这个关键的工具包,客户端可以在任何时间点向你的服务发起无限多的请求。这会导致突然的流量激增…

    2024年4月19日
    0
  • CDN整站加速能起到什么作用?

    在当今互联网时代,网站性能已成为用户体验和搜索引擎排名的关键因素之一。随着用户对网页加载速度的要求不断提高,网站优化已成为网站运营者必须关注的重要议题。其中,CDN(内容分发网络)…

    2024年4月26日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注