新聞中心
技術(shù)總監(jiān)張大胖在朋友圈看到一篇文章,講的是Netflix的微服務(wù)實(shí)踐。

南譙ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!
研究了一會(huì)兒以后,他不由地拍案叫絕:每個(gè)服務(wù)都是一個(gè)組件,可以
1. 獨(dú)立開(kāi)發(fā)
2. 獨(dú)立部署
3. 獨(dú)立伸縮
人家Netflix居然可以在生產(chǎn)環(huán)境隨意地停掉微服務(wù)測(cè)試穩(wěn)定性,這真的把張大胖鎮(zhèn)住了!
張大胖上網(wǎng)搜索一番,發(fā)現(xiàn)網(wǎng)上已經(jīng)有很多文章了,很多公司已經(jīng)開(kāi)始使用微服務(wù)了,輸出了很多最佳實(shí)踐,自己還不知道,太落伍了,這絕不能容忍!
他馬上召集部門(mén)開(kāi)會(huì),商量微服務(wù)改造事宜。
技術(shù)狂熱粉小王率先發(fā)言:“現(xiàn)在支持微服務(wù)的有很多框架,比如SpringCloud , Dubbo等, 張總可以選擇一下!”
張大胖找到了支持者,向小王投去了贊許的目光。
愛(ài)思考的小李說(shuō)到:“張總, 我們維護(hù)的是一個(gè)企業(yè)內(nèi)部系統(tǒng),好像也不太復(fù)雜啊,需要改造成微服務(wù)嗎?”
張大胖反問(wèn):“怎么不需要?微服務(wù)是未來(lái)業(yè)界的趨勢(shì),不順勢(shì)而為就會(huì)被時(shí)代拋棄。以后你沒(méi)做過(guò)微服務(wù),出門(mén)好意思給別人打招呼嗎?!”
沒(méi)人說(shuō)話了。
張大胖又補(bǔ)充一句:“每個(gè)服務(wù)都是獨(dú)立的,大家可以用自己喜歡的編程語(yǔ)言去開(kāi)發(fā)啊!”
這句話太有殺傷力了, 各個(gè)開(kāi)發(fā)人員浮想聯(lián)翩:
小李:“嗯,我要試一下Go”
小王:“我正在學(xué)JavaScript,可以搞下Node.js”
小劉:“趁此機(jī)會(huì)練習(xí)下Python”
看到大家臉上的表情,張大胖心中暗喜, 他講了一下自己選擇的RPC框架,支持服務(wù)發(fā)現(xiàn),負(fù)載均衡、網(wǎng)關(guān)、故障轉(zhuǎn)移等各種功能。
然后他帶著大家把現(xiàn)有系統(tǒng)做了劃分,拆分成12個(gè)微服務(wù),它們之間通過(guò)REST API調(diào)用。
微服務(wù)改造之路正式開(kāi)啟!
第一周:
小李:“張總,現(xiàn)在配置個(gè)本地環(huán)境可真是麻煩啊,我負(fù)責(zé)的服務(wù)依賴其他五個(gè)服務(wù),沒(méi)法本地運(yùn)行啊?!?/p>
張大胖:“嗯,這我事先倒是沒(méi)想到,我看到大家都在用docker,要不我們也把微服務(wù)都形成docker鏡像?這樣每個(gè)人都可以在本地運(yùn)行整個(gè)環(huán)境了。”
小李:“這能行嗎?我的機(jī)器性能差,這么多微服務(wù)跑不起來(lái)吧?”
張大胖:“沒(méi)事, 我申請(qǐng)經(jīng)費(fèi),每人一臺(tái)高性能電腦!”
第二周:
小王:“張總,你看我們每個(gè)微服務(wù)對(duì)應(yīng)一個(gè)自己的數(shù)據(jù)庫(kù),原來(lái)的事務(wù)做不了了?!?/p>
張大胖大吃一驚,怎么把這一茬給忽略了!他知道分布式事務(wù),兩階段提交,三階段提交, 但是性能差,穩(wěn)定性不好,上網(wǎng)搜鎖了一下,發(fā)現(xiàn)了TCC,但是對(duì)業(yè)務(wù)的侵入性強(qiáng),最后確定用“最終一致性”這么一個(gè)寶貝,發(fā)給了小王。
小王看完后說(shuō)到:“張總,這還得實(shí)現(xiàn)重試和冪等性啊,真是麻煩啊?!?/p>
張大胖拍拍小王的肩膀:“小伙子,要有開(kāi)放的心態(tài),這是多么好的學(xué)習(xí)機(jī)會(huì)啊?”
第三周:
小梁:“張總,這么多微服務(wù),我為了定位一個(gè)問(wèn)題,花了一個(gè)上午的時(shí)間,一個(gè)服務(wù)一個(gè)服務(wù)地查找,累死個(gè)人啊?!?/p>
張大胖很無(wú)奈,搜出一個(gè)“鏈路跟蹤”的開(kāi)源解決方案Zipkin,扔給小梁去實(shí)施。
看著密密麻麻的配置,小梁覺(jué)得很崩潰。
第四周:
小蔡:“張總,這日志文件都分布在不同的機(jī)器上,查看起來(lái)太麻煩了?!?/p>
張大胖找到一個(gè)“ELK日志分析”的解決方案,扔給小蔡去實(shí)施。
第五周:
小劉:“張總,小梁改了微服務(wù)的接口,增加了一個(gè)參數(shù),他沒(méi)給其他人說(shuō), 我們的微服務(wù)都沒(méi)法運(yùn)行了!”
張大胖說(shuō):“小梁怎么能這么做呢?”
小劉:“原來(lái)在一個(gè)工程中,在編譯階段就能發(fā)現(xiàn)接口的不匹配,現(xiàn)在都是靠文檔約定的接口,發(fā)現(xiàn)問(wèn)題就晚了?!?/p>
張大胖搜出一個(gè)“契約測(cè)試”,發(fā)到群里:“以后的服務(wù)改動(dòng),必須得通過(guò)契約測(cè)試!”
第六周:
小李:“張總,我們這12個(gè)微服務(wù),每個(gè)服務(wù)部署3個(gè)實(shí)例,我昨天熬了一宿,才手工部署完成,必須得自動(dòng)化了,要不咱們也來(lái)一套k8s?”
張大胖拍拍小李的肩膀:“小伙子挺有想法,微服務(wù)可不就得搭配k8s嗎,搞起來(lái)!”
經(jīng)過(guò)幾個(gè)月的996的開(kāi)發(fā),微服務(wù)改造過(guò)的系統(tǒng)隆重上線,各種新技術(shù)在其中閃閃發(fā)亮:服務(wù)發(fā)現(xiàn),負(fù)載均衡、網(wǎng)關(guān)、故障轉(zhuǎn)移,最終一致性,鏈路跟蹤,日志分析,契約測(cè)試,docker, k8s......
張大胖心滿意足。
CEO把張大胖叫進(jìn)了辦公室。
CEO:“張大胖,你說(shuō)搞系統(tǒng)改造,我還給你批了資金,現(xiàn)在系統(tǒng)怎么越來(lái)越慢了?”
張大胖:“老板您有所不知,我們的系統(tǒng)現(xiàn)在變成分布式的了,分布式系統(tǒng)要略微慢些?!?/p>
CEO:“我就問(wèn)你,我就想看看這個(gè)報(bào)表,為什么半天都出不來(lái)結(jié)果?”
張大胖:“因?yàn)槲覀儸F(xiàn)在是微服務(wù)架構(gòu),這涉及到多個(gè)服務(wù)調(diào)用!我們實(shí)現(xiàn)了網(wǎng)關(guān),負(fù)載均衡,故障恢復(fù)等很多高級(jí)的功能,不信您看,每個(gè)服務(wù)有3個(gè)實(shí)例,我把任意一個(gè)殺掉, 系統(tǒng)就會(huì)自動(dòng)啟動(dòng)一個(gè)新的, 和Netflix一樣..... ”
CEO 怒了:“你瘋了嗎?我們這個(gè)是內(nèi)部應(yīng)用,公司一共才幾百人,你瞎搞啥負(fù)載均衡,故障轉(zhuǎn)移!”
第二天, 張大胖被開(kāi)除了。
張大胖離開(kāi)之前對(duì)組員說(shuō):“唉,沒(méi)辦法,領(lǐng)導(dǎo)們只關(guān)注業(yè)務(wù),不關(guān)注技術(shù)的發(fā)展趨勢(shì),我要走了,大家以后好自為之吧?!?/p>
小李嘀咕道:“這技術(shù)不就是為業(yè)務(wù)服務(wù)的嗎?微服務(wù)看起來(lái)很美,但是根本不適合我們。”
小王說(shuō):“張總,別聽(tīng)小李瞎說(shuō),我們學(xué)會(huì)了微服務(wù),簡(jiǎn)歷中也有干貨了?!?/p>
張大胖心中一亮, 回去趕緊修改簡(jiǎn)歷,加上了這么一條:
領(lǐng)導(dǎo)了單體項(xiàng)目向微服務(wù)的遷移,精通微服務(wù)的架構(gòu)設(shè)計(jì),部署,監(jiān)控。
后記:
寫(xiě)這一篇小品文,是想說(shuō)明一個(gè)道理:不能“手里拿著一個(gè)錘子,眼中看到的全是釘子”,微服務(wù)雖好,也有適用的范圍, 有很多項(xiàng)目單體應(yīng)用活得好好的,根本沒(méi)有拆分的必要,盲目追風(fēng),反而得不償失。
【本文為專欄作者“劉欣”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)作者微信公眾號(hào)coderising獲取授權(quán)】
戳這里,看該作者更多好文
新聞標(biāo)題:微服務(wù)把我坑了!
分享URL:http://www.5511xx.com/article/dhjigch.html


咨詢
建站咨詢
