当前位置: 首页 > news >正文

Redis集群的脑裂问题

        脑裂是指在分布式系统中,由于网络分区或者其他问题导致系统中的多个节点(特别是主节点)会误以为自己是唯一的主节点。从而导致多个主节点同时提供写入服务,造成数据不一致。

        分布式系统就像一个团队在干活,如果发生了脑裂,就好比这个团队突然因为某些原因,比如通信出了问题,分成了几个小团体,每个小团体都以为自己是整个团队,都在按自己的方式工作,各自为政,对同一件事有不同的决策和做法, 就像有的说要这么干,有的说要那么干。 这样一来,整个系统就乱套了,数据也可能变得不一致,服务也变得不正常了,这就是分布式系统中的脑 裂。 导致脑裂出现原因主要是网络分区。

 例如:发生了网络分区,主节点与哨兵、从节点分区了

         此时哨兵发现联系不上主节点,于是发起选举,选了新的主节点,此时 Redis 就出现了两个主节点:

        这就发生了脑裂,此时客户端写数据应该写到哪台上呢?写哪都会导致数据不一致。 

如何尽量避免脑裂的发生?

        min-slaves-to-write :设置主节点在至少有指定数量的从节点确认写操作的情况下才执行写操作。

        min-salves-max-lag:设置从节点的最大延迟(以秒为单位),如果从节点的延迟超过这个值,则该从节点不会被计入 min-slaves-to-write 的计数中。

        举个例子:当 min-slaves-to-write 设置为 2,min-slaves-max-lag 设置为 10秒时,主节点只有在至少有 2 个从节点延迟不超过 10 秒的情况下才会接受写操作。

        这两个参数就使得发生脑裂的时候,如果某个主节点跟随的从节点数量不够或延迟较大,就无法被写入, 这样就能避免脑裂导致的数据不一致。

 

相关文章:

  • Pyhton_25_5_26
  • 海外社媒矩阵运营:IP代理配置与区域突破实战策略
  • AI工具使用的最佳实践,如何通过AI工具提高创作与工作效率
  • 涨薪技术|0到1学会性能测试第83课-Windows Sockets录制
  • C++中使用类的继承机制来定义和实现基类与派生类
  • OpenHarmony平台驱动使用(二),CLOCK
  • 编程日志5.21
  • Windows计算机管理:定时调用指定的可执行程序(.exe)
  • Agilent安捷伦Cary3500 UV vis光谱仪Cary60分光光度计Cary1003004000500060007000 UV visible
  • HMI仿真报错
  • 布局泰国遇网络难题?中泰跨境网络组网专线成破局关键
  • Java集合操作常见错误及规避方法
  • 【SQL server】 SQL子查询:与连接的区别、类型划分、相关与非相关子查询对比
  • Point-wise vs Pair-wise vs List-wise 简述
  • iperf3 如何测试STA 和wifi direct的 throughput
  • Vue 3 核心知识点全览
  • AI时代新词-多模态(Multimodal)
  • 使用AI生成的产品描述存在的商标侵权风险
  • 一个质谱仪的系统的发布
  • 修改 K8S Service 资源类型 NodePort 的端口范围
  • 腾龙时时彩做号软件官方网站/网站结构优化
  • 天津房地产集团网站建设/自制网站
  • 苏州网站建设 公司/谷歌google官网下载
  • 用模块做网站/百度软件应用市场
  • python官方网站/北京全网推广
  • 有什么网站做头像/最新seo教程