跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 为什么好多高可用方案都是 3 个节点?为什么是 3?
未分類
2020 年 12 月 29 日

为什么好多高可用方案都是 3 个节点?为什么是 3?

为什么好多高可用方案都是 3 个节点?为什么是 3?

資深大佬 : zealinux 5

比如 eureka, 不清楚为什么不是 2,或者 4 ?

大佬有話說 (66)

  • 資深大佬 : shyling

    2 个会投出来 1:1

  • 資深大佬 : Jooooooooo

    偶数投票会平票

  • 資深大佬 : sonxzjw

    天地人三才,是最原始最初最稳固的结构

  • 主 資深大佬 : zealinux

    @shyling 比如 erueka 又不需要投票,不能用就是不能用

  • 資深大佬 : geekzhu

    一个太少,两个不够,三个正好?

  • 資深大佬 : DeepDarkVan

    一般高可用配置,超过 50%挂了就不能用了,两台挂了一台不就是不能用了?而且一般都是配的奇数,三台和四台没区别,五台和六台没区别

  • 資深大佬 : outoftimeerror

    道生一,一生二,二生三,三生万物。

  • 資深大佬 : CodeCore

    三个臭皮匠顶个诸葛亮

  • 資深大佬 : cincout

    三足鼎立

  • 資深大佬 : szkoda

    https://www.scalecomputing.com/blog/best-practice-always-3-nodes-minimum-in-a-cluster

  • 資深大佬 : catror

    如果是两个节点,由于网络故障,发生了网络分区。这时两个节点分别提供服务的话,网络恢复之后就会有数据冲突?或者两个节点都不服务,也就没有了高可用。如果是三个节点,拥有两个节点的分区就能正常提供服务,网络恢复后,数据也不会冲突。

  • 資深大佬 : suke971219

    众所周知,三角形最稳固 (狗头 为什么好多高可用方案都是 3 个节点?为什么是 3?

  • 資深大佬 : securityCoding

    选主要奇数,相等这不是找不自在吗?

  • 資深大佬 : sunziren

    如果是 2,你又会问:”为什么是 2″
    如果是 4,你又会问:”为什么是 4″
    那它总得有个数字吧?

  • 資深大佬 : h123123h

    脑裂

  • 資深大佬 : gamexg

    @DeepDarkVan #6 展赞同
    为了防止脑裂问题,一般都会要求不能离线 50%以上节点。

  • 資深大佬 : hhyvs111

    主没事就找个牢坐一下吧,一天天闲的

  • 資深大佬 : opengps

    二分之一未必扛得住总压力,但是坏一个节点,2 台机器负载原本 3 台的压力没有太大问题

  • 資深大佬 : sunziren

    帮我加个狗头

  • 資深大佬 : HolmLoh

    会脑裂

  • 資深大佬 : YouLMAO

    ZK 一般 5 个, 标题打回重写

  • 資深大佬 : wtks1

    因为万物皆三?

  • 資深大佬 : samuel

    偶数节点投票会出现平票,所以 3 节点就是实现高可用需要的最少节点数了

  • 資深大佬 : libook

    我接触到的高可用设施确实通常建议至少 3 节点,但是大多 2 节点也可以工作,直至到剩下 1 个节点。

    没有找到相应的理论参考,说一下个人猜想:
    3 节点中如果 down 了 1 个节点,管理员需要想办法去恢复成 3 节点,此时可以修复 down 的节点也可以加新的空节点,不管是哪一种都涉及到同步数据的过程,此时剩下的 2 个节点中可以 1 个主要承载应用负载,另一个主要承载同步负载,使得同步过程不影响业务性能。如果是 2 节点方案的话,剩下的 1 个节点既要承担应用负载,又要承担同步负载,会使得应用性能容量减半。
    如果是 4 节点的话,除非有其他设计加成,否则和 3 节点的效果差不多,只不过连续 down 2 个节点问题也不大。

  • 資深大佬 : rainman777

    稳定~

  • 資深大佬 : iKunsounds

    三角形最稳定

  • 資深大佬 : carlclone

    看你高可用要达到几个 9 吧,主备 2 台也算高可用啊

  • 資深大佬 : gadsavesme

    偶数会脑裂,3 就是除了单机最小的奇数了。

  • 資深大佬 : misaka19000

    3 是除了 1 之外的最小的正奇数

  • 資深大佬 : longaiwp

    因为符合道家的三生万物的思想?

  • 資深大佬 : selboo

    tcp 为什么要 3 次握手

  • 資深大佬 : Suddoo

    之前厂里的集群也是,3 节点底座,或者 7 节点底座

  • 資深大佬 : wellsc

    五个才是 quorum 最佳实践

  • 資深大佬 : anthow

    三人行

  • 資深大佬 : DoctorCat

    偶数存在脑裂问题,只有奇数才可能发挥仲裁机制,从而避免脑裂。
    由于消息没送达(集群网络故障) A 集群俩人成一伙儿,B 集群俩人成一伙儿,各自选一个 Leader 为政了(两个集群双主同时服务)。如果再引入一个人,就不会发生这种情况,一定是能选出一个 Leader

  • 資深大佬 : cstj0505

    @hhyvs111 好家伙,lz 正常饭吃得太饱,你这让他改吃牢饭了

  • 資深大佬 : kiracyan

    我猜是经验 因为飞机的高可用也是 3 套系统

  • 資深大佬 : PUBG98k

    道生一,一生二,二生三,三生万物。

  • 資深大佬 : areless

    由赤木直子博士开发的三台超级电脑被命名为“MAGI”,三台分别名为 Caspar 、Melchior 和 Balthasar 。典故是从东方过来礼拜基督降生的三贤人。还有夏亚的三倍速。不仅计算机,包括司法系统,三权分立啊,都是 3 个东西互相制约便是最出彩的系统设计

  • 資深大佬 : A388

    一个节点使用,一个备份在同一个网络,另外一个备份到不同网络。

  • 資深大佬 : zzzhen

    防脑裂
    相同的容错下,奇数台节省资源

  • 資深大佬 : namelosw

    3 是大于 1 的最小奇数. 一个挂了就完蛋, 两个的话不知道听谁的, 三个多数服从少数. 有时候你也能看见五个之类的.

    再给你一道题, 想想为什么游戏画面都是三角形拼的

  • 資深大佬 : namelosw

    @namelosw *少数服从多数

  • 資深大佬 : ershierdu

    @selboo #31 这个比喻可能不太相似,TCP 三次握手是为了让客户端、服务端分别确认自己的接收 /发送能力、对方的接收 /发送能力正常,少一次都不全面

  • 資深大佬 : litchinn

    如果是两个,其中一个数据错了你没法区分是哪个错了呀

  • 資深大佬 : someonedeng

    两个的话,挂一个剩下那个估计也差不多了

  • 資深大佬 : hahastudio

    突然意识到 split-brain 的中文译名这么惊悚。。。

  • 資深大佬 : Bromine0x23

    至少 3 个节点才能形成相对多数防止脑裂

  • 資深大佬 : mawenjian

    避免雪崩,两台的压力压到一台上去,活着的这台也离挂掉不远了。

  • 資深大佬 : expkzb

    因为要投票选出“主”,偶数会出现平局

  • 資深大佬 : cairnechen

    3 人才能成立党支部

  • 資深大佬 : Rasphino

    主说的这个高可用,应该指的是 crash fault tolerance 的系统,节点数需要满足 n=2f+1 ( f 为会崩溃的节点数),所以最小的系统需要 3 个节点。

    拜占庭容错系统的节点数是 n=3f+1 ( f 为拜占庭节点数量)。所以拜占庭容错系统需要至少 4 个节点才能容忍 1 个拜占庭节点。

    相关的理论可以看 paxos,raft,pbft 等著名论文。主要思想是:保证正常运作的节点数量过系统的半数。

  • 資深大佬 : sampeng

    两个问题:

    1 是上说选举的问题。
    2 是如果是 2 台,挂了一台,这可是注册中心,这个玩意挂了你全部业务都挂了,只剩一台在跑你不慌么?你能到挂一台马上起来?如果是 2 台,就算没选举的问题,挂一台,又变成单点状态了,很可能下一秒他就挂了。所以最小值是 3.

    ps,不是所有分布式都是需要选举的。。raft 等带来的复杂度也是非常可观的。

  • 資深大佬 : ranxy

    请看 paxos 或者 raft 的 paper

  • 資深大佬 : vloony

    比如 3 个挂了一个 那么重新上线一个节点需要拷贝数据 就需要一个不是使用中的节点 否则拷贝使用中的节点 会影响性能

  • 資深大佬 : biepin

    提供一个概率角度的,假设每个节点出错的概率是 10%,且节点出错是互相独立的,那么三个同时出错的概率是 0.1*0.1*0.1 = 0.0001

  • 資深大佬 : littiefish

    @hhyvs111 这事都怪袁隆平让他们吃的太饱

  • 資深大佬 : Leon6868

    @namelosw 三点确定一个面

    (平面几何似乎与这个主题没多大关系)

  • 資深大佬 : namelosw

    嗯, 两个点构不成面, 四个点很容易出 bug, 扭起来没法构成一个面

  • 資深大佬 : wangyzj

    脑裂

  • 資深大佬 : feelinglucky

    了解下 raft 算法就明白了,关键字:投票

  • 資深大佬 : xuanbg

    3 节点是分布式系统的最小方案了。因为 1 个节点不是分布式,2 个节点没法投票……

  • 資深大佬 : handsomeroger

    大部分原因都是为了预防脑裂问题吧

  • 資深大佬 : JCZ2MkKb5S8ZX9pq

    mongodb 也是三个,可以两个复制集+一个辅助投票的。

  • 資深大佬 : akira

    一主一从加一备

  • 資深大佬 : 243205964

    后宫为什么会有 3 千佳丽

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具