記一次微服務(wù)拆分的經(jīng)歷

微服務(wù)是這幾年興起的一個(gè)概念,它的含義是說(shuō)把一個(gè)單體應(yīng)用拆分成一個(gè)個(gè)各自獨(dú)立的服務(wù)贿条,然后編排調(diào)用這些服務(wù)來(lái)對(duì)外提供服務(wù)增热,有些技術(shù)人員可能覺(jué)得是新技術(shù)就要采用钓葫,也不管是否適用于自己就進(jìn)行微服務(wù)化,但是有一點(diǎn)是可以明確的础浮,微服務(wù)不是銀彈豆同,也不是所有的情況都適用微服務(wù),簡(jiǎn)而言之如果微服務(wù)化帶來(lái)的收益已經(jīng)超過(guò)了付出那就是值得的芹务。

筆者最近參加了一個(gè)公司的項(xiàng)目鸭廷,項(xiàng)目是一個(gè)社區(qū)電商的項(xiàng)目,項(xiàng)目初期為了快速上線(xiàn)佳晶,整個(gè)項(xiàng)目只有一個(gè)單體PHP應(yīng)用轿秧,但是隨著單量越來(lái)越多,需求越來(lái)越多漩符,開(kāi)發(fā)人員越來(lái)越多,單體應(yīng)用已經(jīng)成為了發(fā)展瓶頸了陨仅。所有的開(kāi)發(fā)人員都在一個(gè)項(xiàng)目里開(kāi)發(fā)灼伤,經(jīng)常會(huì)發(fā)生代碼沖突咪鲜;代碼職責(zé)不清晰不明確,有時(shí)候根本就不知道自己的修改是否會(huì)影響到其他的地方颖侄;隨著代碼量越來(lái)越大览祖,每次上線(xiàn)的時(shí)間也越來(lái)越長(zhǎng),而且每次上線(xiàn)所有的部門(mén)都要有人留守展蒂,因?yàn)楦揪筒恢朗欠駮?huì)發(fā)生問(wèn)題苔咪。所以团赏,微服務(wù)拆分勢(shì)在必行。

既然確定了方向舔清,那就剩行動(dòng)了体谒。首先营密,怎么拆分目锭,這是第一個(gè)要回答的問(wèn)題纷捞,而且我個(gè)人覺(jué)得這個(gè)也是最重要的問(wèn)題主儡,基礎(chǔ)不牢地動(dòng)山搖惨缆,要想回答這個(gè)問(wèn)題坯墨,必須首先梳理現(xiàn)有的業(yè)務(wù)流程及代碼實(shí)現(xiàn),此外還要和產(chǎn)品們討論業(yè)務(wù)未來(lái)的發(fā)展方向骄瓣,因?yàn)槟阋粝挛磥?lái)發(fā)展的余地榕栏。在拆分過(guò)后要和團(tuán)隊(duì)成員進(jìn)行充分討論蕾各,對(duì)于一些拆分后在技術(shù)層面實(shí)現(xiàn)很復(fù)雜的東西可以在產(chǎn)品層面優(yōu)化式曲,就是確定這是否是一個(gè)必須的功能吝羞,是否可以用類(lèi)似的功能來(lái)實(shí)現(xiàn),因?yàn)橛械墓δ芸赡茉诩夹g(shù)這里昏天黑地搞了很久但也許在產(chǎn)品那里這是一個(gè)可有可無(wú)的東西医清,因此前期的溝通真的很重要会烙。


然后接下來(lái)就是代碼層面的東西了筒捺,這地方有一個(gè)要注意的點(diǎn)就是盡可能減少對(duì)用戶(hù)體驗(yàn)的影響系吭,就是不能影響整個(gè)業(yè)務(wù)主流程,因此,我們首先在model層進(jìn)行替換躯枢,把現(xiàn)有的一些裸寫(xiě)SQL或者orm的操作替換成對(duì)微服務(wù)RPC的調(diào)用锄蹂,并且這個(gè)地方也并不是直接就替換了得糜,那樣風(fēng)險(xiǎn)太大了晰洒,我們引入了一個(gè)灰度工具,可以對(duì)調(diào)用條件判斷槽棍,當(dāng)命中條件的時(shí)候走RPC炼七,不命中的時(shí)候走本地調(diào)用布持,并且這個(gè)灰度是一個(gè)逐步放量的過(guò)程题暖,此外還會(huì)對(duì)某些調(diào)用同時(shí)執(zhí)行兩步胧卤,并把執(zhí)行的結(jié)果記錄下來(lái)進(jìn)行比較枝誊,當(dāng)然這個(gè)只是針對(duì)讀操作而言。然后PHP應(yīng)用還是我們所有流量的入口绝骚,從PHP應(yīng)用進(jìn)來(lái)以后進(jìn)行分流祠够,這樣也最小限度影響第三方压汪。

如果只是在代碼層面進(jìn)行拆分,但是資源和耦合在一起古瓤,那拆分實(shí)際上是沒(méi)有多少意義的止剖,因此對(duì)于使用的資源也要拆分腺阳,數(shù)據(jù)庫(kù),Redis穿香,都要拆分亭引,只有這些都拆分了那才算得上是獨(dú)立的服務(wù),因?yàn)楣P者遇到過(guò)某個(gè)請(qǐng)求突然增多導(dǎo)致數(shù)據(jù)庫(kù)扛不住扔水,然后導(dǎo)致其他的請(qǐng)求都被阻塞了痛侍,因?yàn)閿?shù)據(jù)庫(kù)連接被打滿(mǎn)導(dǎo)致其他的查詢(xún)無(wú)法執(zhí)行朝氓。

總而言之魔市,拆分就是一個(gè)梳理,慢慢剝離的過(guò)程赵哲,一步一步來(lái),有錯(cuò)誤也可以及時(shí)停止或者回滾较坛。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吧趣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子呆细,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)缆娃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)字逗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)跟狱,“玉大人套腹,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)酱畅。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么樊诺? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任痪寻,我火速辦了婚禮,結(jié)果婚禮上取劫,老公的妹妹穿的比我還像新娘庶诡。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布宪萄。 她就那樣靜靜地躺著静汤,像睡著了一般侠碧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上视卢,一...
    開(kāi)封第一講書(shū)人閱讀 52,736評(píng)論 1 312
  • 那天西饵,我揣著相機(jī)與錄音闯割,去河邊找鬼宙拉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛锥忿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播右蹦,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼嫩实,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤刽锤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年界弧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凡蜻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡垢箕,死狀恐怖划栓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情条获,我是刑警寧澤忠荞,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站帅掘,受9級(jí)特大地震影響委煤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜修档,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一碧绞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吱窝,春花似錦荣暮、人聲如沸心剥。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至撕予,卻和暖如春鲫惶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背实抡。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工欠母, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留欢策,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓赏淌,卻偏偏與公主長(zhǎng)得像踩寇,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子六水,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容