比如 eureka, 不清楚为什么不是 2,或者 4 ?
1
shyling 2020-12-25 11:16:30 +08:00
2 个会投出来 1:1
|
2
Jooooooooo 2020-12-25 11:17:38 +08:00
偶数投票会平票
|
3
sonxzjw 2020-12-25 11:17:43 +08:00 1
天地人三才,是最原始最初最稳固的结构
|
5
geekzhu 2020-12-25 11:18:44 +08:00
一个太少,两个不够,三个正好?
|
6
DeepDarkVan 2020-12-25 11:24:12 +08:00
一般高可用配置,超过 50%挂了就不能用了,两台挂了一台不就是不能用了?而且一般都是配的奇数,三台和四台没区别,五台和六台没区别
|
7
outoftimeerror 2020-12-25 11:25:03 +08:00 8
道生一,一生二,二生三,三生万物。
|
8
CodeCore 2020-12-25 11:26:00 +08:00 via iPhone 4
三个臭皮匠顶个诸葛亮
|
9
cincout 2020-12-25 11:34:22 +08:00
三足鼎立
|
10
szkoda 2020-12-25 11:45:08 +08:00 1
|
11
catror 2020-12-25 11:46:39 +08:00 2
如果是两个节点,由于网络故障,发生了网络分区。这时两个节点分别提供服务的话,网络恢复之后就会有数据冲突?或者两个节点都不服务,也就没有了高可用。如果是三个节点,拥有两个节点的分区就能正常提供服务,网络恢复后,数据也不会冲突。
|
12
treblex 2020-12-25 11:47:25 +08:00
|
13
securityCoding 2020-12-25 11:48:40 +08:00
选主要奇数,相等这不是找不自在吗?
|
14
sunziren 2020-12-25 11:48:43 +08:00 1
如果是 2,你又会问:"为什么是 2"
如果是 4,你又会问:"为什么是 4" 那它总得有个数字吧? |
15
h123123h 2020-12-25 11:49:31 +08:00
脑裂
|
16
gamexg 2020-12-25 11:51:29 +08:00
@DeepDarkVan #6 展赞同
为了防止脑裂问题,一般都会要求不能离线 50%以上节点。 |
17
hhyvs111 2020-12-25 11:52:40 +08:00
楼主没事就找个牢坐一下吧,一天天闲的
|
18
opengps 2020-12-25 11:53:02 +08:00
二分之一未必扛得住总压力,但是坏一个节点,2 台机器负载原本 3 台的压力没有太大问题
|
19
sunziren 2020-12-25 11:53:19 +08:00
帮我加个狗头
|
20
HolmLoh 2020-12-25 11:58:36 +08:00
会脑裂
|
21
YouLMAO 2020-12-25 12:07:06 +08:00
ZK 一般 5 个, 标题打回重写
|
22
wtks1 2020-12-25 12:26:45 +08:00 via Android
因为万物皆三?
|
23
samuel 2020-12-25 12:59:54 +08:00
偶数节点投票会出现平票,所以 3 节点就是实现高可用需要的最少节点数了
|
24
libook 2020-12-25 13:04:27 +08:00
我接触到的高可用设施确实通常建议至少 3 节点,但是大多 2 节点也可以工作,直至到剩下 1 个节点。
没有找到相应的理论参考,说一下个人猜想: 3 节点中如果 down 了 1 个节点,管理员需要想办法去恢复成 3 节点,此时可以修复 down 的节点也可以加新的空节点,不管是哪一种都涉及到同步数据的过程,此时剩下的 2 个节点中可以 1 个主要承载应用负载,另一个主要承载同步负载,使得同步过程不影响业务性能。如果是 2 节点方案的话,剩下的 1 个节点既要承担应用负载,又要承担同步负载,会使得应用性能容量减半。 如果是 4 节点的话,除非有其他设计加成,否则和 3 节点的效果差不多,只不过连续 down 2 个节点问题也不大。 |
25
rainman777 2020-12-25 13:06:51 +08:00
稳定~🐶
|
26
iKunsounds 2020-12-25 13:08:49 +08:00
三角形最稳定
|
27
carlclone 2020-12-25 13:16:25 +08:00 via Android
看你高可用要达到几个 9 吧,主备 2 台也算高可用啊
|
28
gadsavesme 2020-12-25 13:32:32 +08:00 2
偶数会脑裂,3 就是除了单机最小的奇数了。
|
29
misaka19000 2020-12-25 13:34:00 +08:00 1
3 是除了 1 之外的最小的正奇数
|
30
longaiwp 2020-12-25 13:34:08 +08:00
因为符合道家的三生万物的思想?
|
31
selboo 2020-12-25 13:43:13 +08:00
tcp 为什么要 3 次握手
|
32
Suddoo 2020-12-25 13:50:10 +08:00
之前厂里的集群也是,3 节点底座,或者 7 节点底座
|
33
wellsc 2020-12-25 13:52:39 +08:00 via iPhone
五个才是 quorum 最佳实践
|
34
anthow 2020-12-25 14:09:11 +08:00
三人行
|
35
DoctorCat 2020-12-25 14:10:14 +08:00 1
偶数存在脑裂问题,只有奇数才可能发挥仲裁机制,从而避免脑裂。
由于消息没送达(集群网络故障) A 集群俩人成一伙儿,B 集群俩人成一伙儿,各自选一个 Leader 为政了(两个集群双主同时服务)。如果再引入一个人,就不会发生这种情况,一定是能选出一个 Leader |
37
kiracyan 2020-12-25 14:20:50 +08:00
我猜是经验 因为飞机的高可用也是 3 套系统
|
38
PUBG98k 2020-12-25 14:22:08 +08:00
道生一,一生二,二生三,三生万物。
|
39
areless 2020-12-25 14:23:16 +08:00 via Android
由赤木直子博士开发的三台超级电脑被命名为“MAGI”,三台分别名为 Caspar 、Melchior 和 Balthasar 。典故是从东方过来礼拜基督降生的三贤人。还有夏亚的三倍速。不仅计算机,包括司法系统,三权分立啊,都是 3 个东西互相制约便是最出彩的系统设计
|
40
A388 2020-12-25 14:23:59 +08:00
一个节点使用,一个备份在同一个网络,另外一个备份到不同网络。
|
41
zzzhen 2020-12-25 14:27:01 +08:00
防脑裂
相同的容错下,奇数台节省资源 |
42
namelosw 2020-12-25 14:45:47 +08:00
3 是大于 1 的最小奇数. 一个挂了就完蛋, 两个的话不知道听谁的, 三个多数服从少数. 有时候你也能看见五个之类的.
再给你一道题, 想想为什么游戏画面都是三角形拼的 |
44
ershierdu 2020-12-25 14:50:33 +08:00
@selboo #31 这个比喻可能不太相似,TCP 三次握手是为了让客户端、服务端分别确认自己的接收 /发送能力、对方的接收 /发送能力正常,少一次都不全面
|
45
litchinn 2020-12-25 14:53:54 +08:00
如果是两个,其中一个数据错了你没法区分是哪个错了呀
|
46
someonedeng 2020-12-25 15:11:01 +08:00
两个的话,挂一个剩下那个估计也差不多了
|
47
hahastudio 2020-12-25 15:15:19 +08:00
突然意识到 split-brain 的中文译名这么惊悚。。。
|
48
Bromine0x23 2020-12-25 15:16:29 +08:00
至少 3 个节点才能形成相对多数防止脑裂
|
49
mawenjian 2020-12-25 15:50:51 +08:00 via Android
避免雪崩,两台的压力压到一台上去,活着的这台也离挂掉不远了。
|
50
expkzb 2020-12-25 15:54:20 +08:00
因为要投票选出“主”,偶数会出现平局
|
51
cairnechen 2020-12-25 16:22:45 +08:00
3 人才能成立党支部
|
52
Rasphino 2020-12-25 16:54:45 +08:00 via iPhone
楼主说的这个高可用,应该指的是 crash fault tolerance 的系统,节点数需要满足 n=2f+1 ( f 为会崩溃的节点数),所以最小的系统需要 3 个节点。
拜占庭容错系统的节点数是 n=3f+1 ( f 为拜占庭节点数量)。所以拜占庭容错系统需要至少 4 个节点才能容忍 1 个拜占庭节点。 相关的理论可以看 paxos,raft,pbft 等著名论文。主要思想是:保证正常运作的节点数量过系统的半数。 |
53
sampeng 2020-12-25 17:08:46 +08:00
两个问题:
1 是楼上说选举的问题。 2 是如果是 2 台,挂了一台,这可是注册中心,这个玩意挂了你全部业务都挂了,只剩一台在跑你不慌么?你能到挂一台马上起来?如果是 2 台,就算没选举的问题,挂一台,又变成单点状态了,很可能下一秒他就挂了。所以最小值是 3. ps,不是所有分布式都是需要选举的。。raft 等带来的复杂度也是非常可观的。 |
54
ranxy 2020-12-25 17:09:25 +08:00 via iPhone
请看 paxos 或者 raft 的 paper
|
55
vloony 2020-12-25 17:32:39 +08:00
比如 3 个挂了一个 那么重新上线一个节点需要拷贝数据 就需要一个不是使用中的节点 否则拷贝使用中的节点 会影响性能
|
56
biepin 2020-12-25 17:47:56 +08:00
提供一个概率角度的,假设每个节点出错的概率是 10%,且节点出错是互相独立的,那么三个同时出错的概率是 0.1*0.1*0.1 = 0.0001
|
57
littiefish 2020-12-25 18:29:12 +08:00 via iPhone
@hhyvs111 这事都怪袁隆平让他们吃的太饱
|
59
namelosw 2020-12-25 19:05:47 +08:00
嗯, 两个点构不成面, 四个点很容易出 bug, 扭起来没法构成一个面
|
60
wangyzj 2020-12-25 19:15:04 +08:00
脑裂
|
61
feelinglucky 2020-12-25 19:17:25 +08:00
了解下 raft 算法就明白了,关键字:投票
|
62
xuanbg 2020-12-25 19:20:10 +08:00
3 节点是分布式系统的最小方案了。因为 1 个节点不是分布式,2 个节点没法投票……
|
63
handsomeroger 2020-12-25 19:21:50 +08:00
大部分原因都是为了预防脑裂问题吧
|
64
JCZ2MkKb5S8ZX9pq 2020-12-25 21:26:41 +08:00
mongodb 也是三个,可以两个复制集+一个辅助投票的。
|
65
akira 2020-12-26 05:53:40 +08:00
一主一从加一备
|
66
243205964 2020-12-26 07:38:11 +08:00 via Android 1
后宫为什么会有 3 千佳丽
|