面試中一個(gè)暴露能力等級(jí)的問(wèn)題
背景
回答舉例
舉例一
描述:一次收到了服務(wù)器宕機(jī)的告警,從監(jiān)控上可以看到機(jī)器出現(xiàn)故障當(dāng)時(shí)有非常頻繁的fullGC。于是進(jìn)行了重啟,發(fā)現(xiàn)沒(méi)有解決問(wèn)題。所以我們直接開(kāi)始排查問(wèn)題原因,從監(jiān)控中可以看到一個(gè)接口請(qǐng)求量高于平時(shí)。通過(guò)擼代碼發(fā)現(xiàn)這個(gè)接口里有個(gè)sql的where條件失效,每次調(diào)用都是全表掃描,所以把服務(wù)器打掛了。我們用了1個(gè)多小時(shí),定位問(wèn)題后進(jìn)行了熱修復(fù)。連環(huán)問(wèn)1:你們的業(yè)務(wù)量有多少?在開(kāi)始排查原因之前,除了重啟是否有其他的止血措施?回答:高峰時(shí)有幾百Q(mào)PS,出問(wèn)題正好在低峰期,也就10QPS,所以也沒(méi)有什么大影響。所以沒(méi)做其他的止血措施。我算了一下,業(yè)務(wù)中斷1個(gè)多小時(shí),影響業(yè)務(wù)少數(shù)也有4W筆。如果不需要承擔(dān)一些后果,我猜測(cè):要不就是上層領(lǐng)導(dǎo)自己扛下了壓力,沒(méi)有穿透過(guò)來(lái),要不就是這個(gè)服務(wù)不是核心業(yè)務(wù)。而回答者的止血措施前期準(zhǔn)備不足,穩(wěn)定性意識(shí)也不是特別高。屬于中規(guī)中矩的開(kāi)發(fā)人員。
連環(huán)問(wèn)2:這個(gè)問(wèn)題在測(cè)試階段怎么沒(méi)發(fā)現(xiàn)?
回答:測(cè)試用例沒(méi)有覆蓋到。問(wèn)題的根因是接口的核心邏輯,還不屬于邊界或者少量場(chǎng)景,我猜測(cè)整個(gè)團(tuán)隊(duì)把關(guān)都不是很嚴(yán),缺少牛人指導(dǎo)。
由于兩個(gè)連環(huán)問(wèn)的回答技術(shù)含量一般,我沒(méi)有就這個(gè)問(wèn)題繼續(xù)追問(wèn)。
舉例二
描述:一次與外部進(jìn)行對(duì)接,結(jié)果從對(duì)接方的服務(wù)器上調(diào)用接口獲取不到數(shù)據(jù),我們ping、telnet等命令發(fā)現(xiàn)都沒(méi)有問(wèn)題,沒(méi)有辦法就進(jìn)行了抓包,看到數(shù)據(jù)聯(lián)通性是好的,就想到可能是配置問(wèn)題,最終查到配置了包大小的限制導(dǎo)致。我覺(jué)得他的回答沒(méi)有問(wèn)題,不是我的主要考察方向,我沒(méi)有追問(wèn)。從這個(gè)回答中,我覺(jué)得對(duì)他的linux基本命令的掌握達(dá)標(biāo)了。
舉例三
描述:做了一個(gè)配置中心,用戶在使用的時(shí)候使用方式不當(dāng)。公司里主流使用xx1和xx2兩種編程語(yǔ)言,這兩種語(yǔ)言所用的序列化器肯定是不同的。用戶在配置序列化器的使用對(duì)整個(gè)業(yè)務(wù)線的所有應(yīng)用進(jìn)行了全局配置,把所有服務(wù)配置成同一個(gè)序列化器。這個(gè)地方我們做配置中心的承擔(dān)少部分責(zé)任,主要責(zé)任還是用戶。本質(zhì)原因是他們的操作失誤,我們還是進(jìn)行優(yōu)化,增加了審核環(huán)節(jié)。連環(huán)問(wèn)1:除了審核,針對(duì)配置中心,是否還有其他的優(yōu)化空間呢?
回答:這個(gè)地方我們其實(shí)有很完善的文檔,用戶沒(méi)有按要求操作我們也很無(wú)奈。
這時(shí)候,我覺(jué)得我們遇到了價(jià)值觀上的分歧。服務(wù)、擔(dān)當(dāng)、協(xié)同上我們的認(rèn)知是有差異的,沒(méi)有誰(shuí)對(duì)誰(shuí)錯(cuò),只是有差異。為了避免爭(zhēng)執(zhí)我轉(zhuǎn)移問(wèn)題到其他不相關(guān)問(wèn)題上。這里說(shuō)說(shuō)我自己對(duì)此問(wèn)題的想法:
這里配置中心需要做保證服務(wù)健壯性為核心的優(yōu)化:1>配置需要灰度生效,而不是一次性全局生效。2>針對(duì)業(yè)務(wù)線級(jí)別全局配置這種大范圍低頻配置,應(yīng)該增加專家審核環(huán)節(jié),由配置專家進(jìn)行把關(guān),確保符合用戶預(yù)期。3>像涉及到業(yè)務(wù)線多個(gè)服務(wù)的配置修改,需要將配置更新下發(fā)給涉及的每個(gè)服務(wù)負(fù)責(zé)人進(jìn)行確認(rèn),服務(wù)負(fù)責(zé)人確認(rèn)后才能生效。
配置這件事情,我再多說(shuō)兩句,幾個(gè)月前剛剛做過(guò)調(diào)查問(wèn)題,采樣范圍不廣,也不能說(shuō)多客觀。但是從業(yè)界近幾年的大事故來(lái)看,確實(shí)非常值得重視:

后記
前段時(shí)間我重溫了小時(shí)候看的第一部電視劇《雪山飛狐》,小時(shí)候看不懂,現(xiàn)在我明白了,整個(gè)故事的核心是:一個(gè)由于溝通不暢引發(fā)的血案。
故事開(kāi)始,明末清初,李自成有4個(gè)忠心耿耿的護(hù)衛(wèi),分別姓:胡、苗、范、田。起義失敗后,他手下3個(gè)護(hù)衛(wèi)因事離開(kāi),還有剩下胡護(hù)衛(wèi)和李自成。胡護(hù)衛(wèi)為保李自成,忍辱負(fù)重,假意投清。實(shí)際上在計(jì)劃一個(gè)東山再起的行動(dòng),畢竟他們?cè)谝粋€(gè)雪山上埋了一個(gè)寶藏,還是有資本的。行動(dòng)都計(jì)劃好了,就差跟另外3個(gè)護(hù)衛(wèi)通氣了。這時(shí)候去找3個(gè)護(hù)衛(wèi),對(duì)于原來(lái)的事情沒(méi)有解釋,被3個(gè)護(hù)衛(wèi)殺了。臨死前說(shuō):你們其實(shí)打不過(guò)我,我讓著你們,情愿被殺。但你們千萬(wàn)別讓我兒子知道你們把我殺了。不然你們打不過(guò)他,會(huì)死翹翹的。
我看到這里心里在整理這里面的邏輯:“重要的事情一點(diǎn)也沒(méi)說(shuō),只說(shuō)了些沒(méi)用的。不僅如此,最后這段話簡(jiǎn)直就是在說(shuō),我反正死了無(wú)所謂,不想辯解。只是我死了,肯定會(huì)有人給我報(bào)仇,你們也得死。”我突然明白了:這個(gè)胡護(hù)衛(wèi)難道是想明白了反清復(fù)明不可能成功,但是又不想落個(gè)罵名,所以想把這三個(gè)反清復(fù)明的兄弟殺了,還想找個(gè)正大光明的理由,就以自己為餌,讓兒子替自己報(bào)仇。這樣,既可以讓天下免受戰(zhàn)火之苦,又保全了名聲,好心機(jī)呀。果然,胡護(hù)衛(wèi)的兒子胡一刀來(lái)報(bào)仇了,他讓三個(gè)護(hù)衛(wèi)臨死前見(jiàn)了一個(gè)人,這個(gè)人就是李自成,李自成把當(dāng)年的事情做了澄清。三護(hù)衛(wèi)覺(jué)得自己冤枉了胡護(hù)衛(wèi)就自殺了。臨死前什么都沒(méi)跟家人交代,什么鬼,存心讓胡一刀背鍋?
胡一刀背著殺死三護(hù)衛(wèi)的鍋,田護(hù)衛(wèi)和苗護(hù)衛(wèi)的兒子田歸農(nóng)和苗人鳳就來(lái)找他了。胡一刀和苗人鳳開(kāi)始了以性命相拼的比武之路。他倆簡(jiǎn)直是天造地設(shè)的CP,惺惺相惜。胡一刀還幫苗人鳳報(bào)仇,到了苗人鳳仇人家,啥都不說(shuō),用苗家劍法咔咔咔的把人砍了。連個(gè)立地成佛的機(jī)會(huì)都不給。看其他電視劇,我經(jīng)常的感覺(jué):都這緊張的節(jié)骨眼兒了,你們就先別廢話了。看這劇,我的感覺(jué)是你們動(dòng)手前能不能先溝通溝通,著啥急呀?
田歸農(nóng)功夫菜,心眼壞,在苗人鳳刀上偷偷喂毒。比武時(shí)胡一刀受傷,胡一刀掛了。苗人鳳心懷愧疚,見(jiàn)到了自己的人上人藍(lán),開(kāi)口閉口就是胡一刀夫婦如何恩愛(ài)。兩口子結(jié)婚第一件事就是帶著媳婦見(jiàn)這兩個(gè)死人。我特明白藍(lán)見(jiàn)到甜言蜜語(yǔ)的田歸農(nóng),跟著人家跑了,她是看穿了苗人鳳是gay。
其實(shí)苗人鳳深愛(ài)自己的前妻,把寶藏地圖打成金釵送給了藍(lán)。并且只要藍(lán)活的好好的,就不會(huì)殺田歸農(nóng)給胡一刀報(bào)仇。藍(lán)很快知道了田歸農(nóng)和自己在一起別有用心,她后悔了。苗人鳳也很想讓藍(lán)回到自己身邊,何況他們還有一個(gè)女兒落藍(lán)每天夜里想娘想的偷偷抹淚。然而,他們見(jiàn)面誰(shuí)也撕不下來(lái)臉把心里想的說(shuō)出來(lái)。
藍(lán)過(guò)的生不如死,一心求死。死前把金釵交給田歸農(nóng),讓他交還給苗人鳳,說(shuō):“只要你把這個(gè)交給他,他就不會(huì)殺你。”苗人鳳來(lái)了,田歸農(nóng)慌慌張張的把金釵交給苗人鳳。苗人鳳在劇里終于解釋了一回:“田歸農(nóng)呀,這個(gè)金釵里就有你心心念念的藏寶圖哦。”苗人鳳覺(jué)得藍(lán)一生都在守護(hù)他們之間“釵在人在,釵亡人亡”的承諾;覺(jué)得自己在藍(lán)心里比田歸農(nóng)重要。很滿意,大笑而去。總結(jié)一下苗人鳳對(duì)藍(lán)做的事情:“他明知道田歸農(nóng)不是好人,完全不和藍(lán)解釋,任憑藍(lán)掉進(jìn)龍?zhí)痘⒀āK{(lán)受盡折磨而死,但是死后他知道藍(lán)心中還是他最重要,虛榮心得到滿足,沒(méi)有遺憾了。”這種人為什么能是一個(gè)正面人物的設(shè)定?
金庸大大用真摯的文筆寫出了在那個(gè)語(yǔ)言表達(dá)匱乏的年代,人們?yōu)榇烁冻龅拇鷥r(jià)。
大家都在抱怨現(xiàn)在的面試太卷了。我有切實(shí)的感受,我經(jīng)常面試完嘆息一聲:這個(gè)同學(xué)要是在十幾年前面試是能過(guò)的。可十幾年前中國(guó)的互聯(lián)網(wǎng)行業(yè)還在抄襲國(guó)外,現(xiàn)在經(jīng)常是被國(guó)外抄襲。中國(guó)出品的一些中間件也越來(lái)越多的被國(guó)外使用。
我們所做的只是比十年前更注重方法了,而自己的成長(zhǎng)工作和生活中都能用的上。比如這個(gè)年代更重視溝通,甚至溝通技能也成為了面試考察的一個(gè)重點(diǎn)之一。我們努力訓(xùn)練來(lái)的這個(gè)技能不僅能更好的促進(jìn)工作,還能避免《雪山飛狐》里的悲劇,最重要的是讓中國(guó)在世界上越來(lái)越有地位。當(dāng)然,還是希望少加班,多些時(shí)間,休息著、玩著,就把事情想的更明白了。
推薦閱讀
