有位新来的同事问我:集群是什么?高可用是什么?
我当时第一反应是:你不是IT顾问么?谁招你进来的?这问题连百度都能回答,你……
然而看着她一脸的求知,误人子弟之心油然而生(原谅我当过大学老师,罪过罪过)。
我就立马堆砌笑脸:这个问题很有水平……
我:集群就是很多台相同功能的服务器合并一起工作,在外面看来就是一台服务器。高可用正常工作时间比较多。
她:那么集群和高可用的关系是什么?
我:嗯,这个啊(擦,从来没想过)。
她:嗯??!!
我:(别再追问了,你问吃饭和饱肚子啥关系,这个还用回答么?)
她:嗯??!!
我:不如我举个栗子吧(擦擦汗)。
她:好啊好啊。
我:嗯(黑线,突然觉得自己好失败)。
举个香蕉
假如你开了一间超市,有很多收银台,但不是所有收银台都开通。
什么是集群?
单个收银台完成的是完整的收银动作,多个收银台组成收银处就是一套集群。
收银处里面有很多张收银台,你不需要说去A收银台扫码、到B收银台交钱、到C收银台提货。
任何一张收银台都能完成全套扫码、收银和提货服务。
什么是集群高可用?
主要体现在以下几方面:
1、增加或减少节点不会影响集群服务
假如你看天色已晚顾客也少了,你想把收银台从3个撤成1个。
打算撤走的2个收银台不会死活拿不出钱关不了机,收银员也不会赖死不走拉横幅要工钱。
撤走以后剩下的1个收银台不会突然罢工,最后导致整个收银处瘫痪。
同样的,你新开的收银台,不会让正在收银的台面断电罢工。
2、节点出现调整后,负荷会平滑重新分配,不会影响集群工作
假如你看到超市好多顾客推着车往收银处走,看到收银处已经人头涌涌。
于是你立马把七姑八姨叫到收银处,把剩余2个收银台上电开通。
结果呢,正在排队和即将排队的顾客看到有空的收银台,立马不顾一切冲过来抢头位。
后果呢,刚上电的收银台一下子给挤歪了,你的七姑被这场景吓晕在地,于是七姑收银台罢工。
赶巧你八姨收银台也上电了,刚才抢占不成的人流又冲过来,你的八姨吓得赶紧调头跑,于是八姨收银台也撂摊子了。
于是那群人又回头往剩余的收银台冲,结果冲一个收银台吓跑一位收银员。
最后全部收银台罢工,损失惨重啊。
负荷调度没作好直接就形成服务风暴,当然是一冲一个死没商量。
3、集群的每个节点理论上是平均工作,不会出现有些节点忙死有些节点闲死。
其实也很简单,就是开了2个收银台,不会出现你的七姑一天到晚收钱收到手抽筋,你八姨就整天嗑瓜子没人上台。
当然,集群是一个很大的学问,安全、可用、低成本等是很大学问,以上只是用简单例子解释。
回到最初问题,集群就是一种工作模式,而高可用是这种工作模式的一个指标。
领取专属 10元无门槛券
私享最新 技术干货