Day26 Redis架构实战-Redis丛集架构/Gossip协议

Redis丛集架构目标情境

  • 高效能与可依照效能需求线性扩增节点达到1000个
    • 最少3个Master,不需要使用代理去做导向连线和资料合并,使用非同步的方式进行资料集复制.
  • 操作安全性
    • Redis透过丛集非同步复制资料集机制尽可能的在大多数的Master上保留所有从用户端写入的资料,只有极小可能发生资料遗失.
  • 可用性
    • 每个Master可有一个以上的Replica,提供类似Sentinel的失效切换机制 (非Sentinel).
# Redis丛集配置
                          client
                            |
                            V
--------------------------------------------------------------
       Redis               Redis               Redis
     (Master)            (Master)            (Master)
    |        |           |       |           |       |
    V        V           V       V           V       V
  Redis    Redis       Redis    Redis       Redis    Redis
(Replica) (Replica)  (Replica) (Replica)  (Replica) (Replica)
--------------------------------------------------------------
示意   1/3 Data            1/3 Data             1/3 Data                
  • 可缩放性

    • Scale Up 垂直扩充
      • 单台Server扩充其CPU/RAM 相关硬体资源.
    • Scale Out 水平扩充
      • 扩充多台的Server.
  • Gossip协议

    • 分散式一致性协议
      • 无中心化,用以实现分散式与弹性扩充.
      • 失效切换,用以实现高可用性.
    • Gossip讯息
      • Meet -- 通知各节点有新节点加入.
      • Ping -- 每个节点与其它结点间的Heartbeat机制,用於确认其它节点是否还在线上服务,同时也可以用来交换资讯.
      • Pong -- 当节点收到Meet或Ping时进行回应的讯息,还可以用来更新节点状态.
      • Fail -- 当其它节点收到Fail讯息後,会立刻将这个节点更新为离线状态,接下来会进行失效切换.
    • 每个节点各自保存与维护一份自己视角所得到的Redis丛集状态
      • 目前丛集状态.
      • 每个节点所管理的Slot与资料迁移装态.
      • 每个节点的Master/Replica状态.
      • 每个节点的生存状态与Fail状态.

<<:  Day-26 请问 REST 是什麽? GET 和 POST 是什麽?

>>:  Day 27 -资料库应用小程序 首页功能(内涵程序码)

中国银行长城跨境通VISA/万事达国际借记卡申请

中国银行长城跨境通卡,产品全称中国银行长城跨境通国际借记卡,可能是目前唯一能够自由办理的国际借记卡。...

[Day18] JavaScript - Fetch

fetch() 是 ES6 的新语法,主要是搭配 Promise来执行请求网站和请求後获取 Resp...

老大哥在看着你 - 事件与事件监听

在JS的世界里到处是物件,在浏览器的世界里到处是事件。 事件驱动 根据JavaScript大全,客户...

JavaScript Day 7. 浅谈 Function

自己常常在写程序的时候,因为习惯一种写法就很自然写下去,不太会去思考为什麽要这样用,就像每天早上都会...

Day 07 「Tell. Don't Ask.」 测试与依赖:测行为

2021 IT 铁人 Day 07 测试与依赖:测行为 今天来聊「不回传值的命令」的使用场景与测试。...