【JAVA】【Redis】常看常新,集群/哨兵的原理/设计背后是文化差异

95 阅读2分钟

一个最基础的Redis是什么样的

  • 单点部署

稍微强点呢

  • 多节点同步全量复制

细节优化迭代

  • 读写分流,有了主从的概念

可用性提升-有了哨兵

  • 有了外部哨兵监管,客观独立第三方
  • 从这里开始就和两国文化有关了开始了……

复习下白话哨兵原理

  • 外面一个哨兵集群,里面是1主2从
  • 哨兵一直扫主,当普遍觉得主出问题了,就选举一个从做新的主

体现了什么思想:

西方常见的,xx机构的运作会聘请独立检测公司,定期提供检验报告/建议,代码源自生活。

仅到哨兵为止还没什么差异,各国都一样。

容量不够,有了分片原理的集群

  • 集群可以简单看作复数个哨兵模式的集合,但是不再真实存在“哨兵”这一实体

    • 从这里开始,话题变得危险了。
  • 集群的运作体现了

    • 去中心化思想
    • 精英zz与选举制
    • 基于【法】的多方制约
  • 分了2个阶级:主与从

    • 或许称之为zz团体更合适

主阶级的事,轮不到从阶级掺和,所以主的是否【失能】,由主内部决议。

确定【主】确实存在【失能】后,会公示失能情况,【从】们之中选一个上去做【主】

只有主节点们才能确定一个主节点是否失能,但失能后自告奋勇成为新【主】的权力,又是属于【从】的

权力分散,不信任任何单一主体

【从】们在知晓【主】的失能情况后,按照算【法】delay时间,自告奋勇成为新的主。

但最后决定权依旧在【主】的手里,精英zz。

从有权申请,主掌握审批,主无权选人,而从的申请又在法的限制下

从头到尾集群内是没有一个中心的注册表的,甭管主从节点都按照设计好的模式,不停拉取信息,做出对策,形成网状结构,每个人照章办事。

  • 看的别扭就对了,因为这玩法就不是我们的特色
    • 如果带入我们的特色会是什么样的呢?

设立一个检查组,保证检查组的纯净性可靠性(下到基层和所有节点并肩作战!),由检查组决定主是否丧失信念,然后再由检查组决定一个从晋升为主节点。 主/从节点不需要参与决策,只要接受安排

可能的问题就?:为了解决问题而又引入了新的部门机构,冗员太多,而且一旦检查组堕落了全盘皆输

优势呢?:和现实一样,举集群体制,效率高,一旦发现立刻下马,不用延迟,算法复杂度也低

溜了溜了发疯了