如何给老婆解释什么是 Master-Slave

一天,阳光明媚,天朗气清,正是春游的好日子。

我在家中躺着看权游,老婆在一旁,翻阅着书架上的书。

和往常一样,她在看到一本技术书时,阅读速度骤降下来,我知道她又要对我进行灵魂拷问了。

小命不保

“嘿,发现了一个现象。”,老婆说,手中拿着的书,是《高性能Mysql》。

“嗯哼。”,我故作镇定。

“你们每本技术书,讲到最后,都要讲一个叫 Master-Slave 的东西。”

“你是说主从?”

“主从是个啥子?”

“主从,emmm,就是... 呃,怎么跟你说呢,这是很简单的概念嘛 ... ”

"什么,很简单的概念,你意思是说,这么简单的东西我都不懂咯?"

“呃... ”,我感觉我要跪,仿佛挂在悬崖边上,靠臂力支撑着 ......

自我救赎

我不想今晚跪搓衣板、洗碗、洗衣服,我的权游还没看完。

“是这样的,很多东西嘛,一般人都不懂,但只要懂了,就会觉得很简单,比如说去日本旅游,怎么办签证、怎么坐电车、怎么和日本人沟通,没了解之前,都觉得很难,但一旦做成了,就很简单。”,我在悬崖边缘挣扎。

“嗯哼,是这个道理~”

貌似已经靠着臂力和背阔肌,把自己拉上去了,暂时安全了。

“还记得咱们上次坐高铁去长沙,在深圳北那排队取票吗?”

“记得呀~ ”

“嗯,咱们去取票,售票处那里,有很多个窗口吧,而且有的窗口上写着,只限取票,不能买票。”

“嗯嗯,是有这样的。”

“好,现在我们把这个高铁站售票窗口的模型简化一下,我们假设,一开始,只有一个窗口,既负责售票,又负责取票,你觉得会有什么问题?”

“那会很烦吧,像咱们这种在网上买票,到了那再取票的,估计得取好久。只有一个窗口,全部人都挤在一块了。”

“没错,这是只有一个窗口带来的第一个问题:拥挤。”

“还有别的问题?”

“是的,你想想看,假设负责这个窗口的员工尿急,想去上厕所,或者这个窗口的电脑坏掉了,用不了,怎么办?”

“噢,那这时候就一张票也卖不了,一张票也取不了。”

“嗯嗯,这个叫SPOF,Single Point of Failure,意识是系统里一个节点的故障,导致整个系统都不可用。”

“Soga,长见识了。”

“嗯哼,那么,这时候,假设你是高铁站的站长,你会怎么做?”

“呃,我得请更多的员工,开多几个窗口。”

“没错,我们再加多几个窗口,现在就不怕有哪个窗口,因为员工尿急或者电脑坏掉而不能提供服务了,如果无法服务,让排队的乘客去其他窗口就好了。”

“666,那这样就既解决了SPOF,又解决了拥挤问题啦~ ”

“哈,你都会用软件术语来描述生活问题了。SPOF是肯定解决了,但是拥挤嘛,还可以再继续优化的~”

“咋优化?”

“你看,现在各个窗口,都是既可以买票,又可以取票的,但是常识告诉我们,人均买票花费的时间,要远大于人均取票的时间。

“啊,对,要是这条队,前面一百个人都是买票的,但是我一个取票的过来了,排到队尾,那就得奔溃... ”

"是的,所以我们可以优化下,让其中两个窗口,既可以买票又可以取票,或者干脆就只让它们可以买票,这些,我们叫做Master,然后再按需要加多几个窗口,这几个窗口,只能取票。因为他们是为了给 Master 们减轻负担,所以我们叫它们 Slave,这个用软件的术语来描述,就是读写分离"

“Wow!原来 Master-Slave 是这样个意思~ ”

其实,很多软件设计的想法,都可以在生活中找到影子,软件设计也是一门“仿生学”。比如刚开业的小店,可能员工都不多,但是一旦生意上去了,就会招更多的小弟过来,因为一旦顾客想点菜或者买单时,找不到服务员,是很影响心情和体验的。软件也是这样,只放一台机器在那,一旦这台机器忙不过来,就会表现为网页发来的请求,响应很慢,同样影响访客的体验和心情,访客点个按钮,半天没响应,那他们可能就把这个网站拉黑了。”

“Wow,可以可以,很6嘛~ ”

我仿佛已经从悬崖边上撑了起来,迎着早晨的阳光,大步往回走 ......

非程序员请就此止步,程序员请继续往前走……

对程序员的话

这篇文章用了售票窗口来类比机器,解释什么是 Master-Slave,什么是SPOF,什么是读写分离。

要说这两者最大的不同,那就是售票窗口并不是数据源。

即我们查询数据时,不会直接从售票窗口查询,而是售票窗口里的服务员,用电脑再去查数据。

而机器呢,很多机器本身就是数据源,比如Mysql,请求过来后,它们直接从自己身上拉数据,返回出去。这样就要求不同机器上的数据,必须要一致,不能客户从机器A查询,得到结果是“aa”,从机器B查询,得到结果却是“bb”,所以就需要当数据写入 Master 时,把数据同步给 Slave,这就是「主从复制」。

「主从复制」期间,Slave的数据会和Master不一致,这是「主从延迟」。

由于「主从延迟」的存在,当Master宕机时,你要优先保证「数据强一致性」还是「服务可用性」,这就是「主从切换」时要考虑的问题了。

如果你看了这篇文章,还想深入了解 「主从复制」、「主从延迟」和「主从切换」是怎么回事 ,可以看我之前写的:Mysql Replication 简明教程

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容