關(guān)于微服務(wù)的學(xué)習(xí)

  微服務(wù)架構(gòu),是當(dāng)前比較主流的架構(gòu)盔憨,最近剛好也了解了一些微服務(wù)架構(gòu)的內(nèi)容,所以也接著這個(gè)機(jī)會(huì),整理一下對(duì)微服務(wù)架構(gòu)的了解亚茬。

微服務(wù)的定義

微服務(wù)是一種架構(gòu)風(fēng)格,一個(gè)大型復(fù)雜軟件應(yīng)用由一個(gè)或多個(gè)微服務(wù)組成浓恳。系統(tǒng)中的各個(gè)微服務(wù)可被獨(dú)立部署刹缝,各個(gè)微服務(wù)之間是松耦合的。每個(gè)微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)颈将。在所有情況下梢夯,每個(gè)任務(wù)代表著一個(gè)小的業(yè)務(wù)能力。

傳統(tǒng)與微服務(wù)

微服務(wù)架構(gòu)的優(yōu)勢(shì)

  • 每個(gè)服務(wù)都比較簡(jiǎn)單晴圾,只關(guān)注于一個(gè)業(yè)務(wù)功能颂砸。

  • 微服務(wù)架構(gòu)方式是松耦合的,可以提供更高的靈活性疑务。

  • 微服務(wù)可通過(guò)最佳及最合適的不同的編程語(yǔ)言與工具進(jìn)行開(kāi)發(fā)沾凄,能夠做到有的放矢地解決針對(duì)性問(wèn)題。

  • 每個(gè)微服務(wù)可由不同團(tuán)隊(duì)獨(dú)立開(kāi)發(fā)知允,互不影響撒蟀,加快推出市場(chǎng)的速度。

  • 微服務(wù)架構(gòu)是持續(xù)交付(CD)的巨大推動(dòng)力温鸽,允許在頻繁發(fā)布不同服務(wù)的同時(shí)保持系統(tǒng)其他部分的可用性和穩(wěn)定性保屯。

微服務(wù)架構(gòu)的缺點(diǎn)

  • 運(yùn)維開(kāi)銷及成本增加:

整體應(yīng)用可能只需部署至一小片應(yīng)用服務(wù)區(qū)集群,而微服務(wù)架構(gòu)可能變成需要構(gòu)建/測(cè)試/部署/運(yùn)行數(shù)十個(gè)獨(dú)立的服務(wù)涤垫,并可能需要支持多種語(yǔ)言和環(huán)境姑尺。這導(dǎo)致一個(gè)整體式系統(tǒng)如果由20個(gè)微服務(wù)組成,可能需要40~60個(gè)進(jìn)程蝠猬。

  • 必須有堅(jiān)實(shí)的DevOps開(kāi)發(fā)運(yùn)維一體化技能:

開(kāi)發(fā)人員需要熟知運(yùn)維與投產(chǎn)環(huán)境切蟋,開(kāi)發(fā)人員也需要掌握必要的數(shù)據(jù)存儲(chǔ)技術(shù)如NoSQL,具有較強(qiáng)DevOps技能的人員比較稀缺榆芦,會(huì)帶來(lái)招聘人才方面的挑戰(zhàn)柄粹。

  • 隱式接口及接口匹配問(wèn)題:

把系統(tǒng)分為多個(gè)協(xié)作組件后會(huì)產(chǎn)生新的接口喘鸟,這意味著簡(jiǎn)單的交叉變化可能需要改變?cè)S多組件,并需協(xié)調(diào)一起發(fā)布驻右。在實(shí)際環(huán)境中什黑,一個(gè)新品發(fā)布可能被迫同時(shí)發(fā)布大量服務(wù),由于集成點(diǎn)的大量增加堪夭,微服務(wù)架構(gòu)會(huì)有更高的發(fā)布風(fēng)險(xiǎn)愕把。

  • 代碼重復(fù):

某些底層功能需要被多個(gè)服務(wù)所用,為了避免將“同步耦合引入到系統(tǒng)中”森爽,有時(shí)需要向不同服務(wù)添加一些代碼恨豁,這就會(huì)導(dǎo)致代碼重復(fù)。

  • 分布式系統(tǒng)的復(fù)雜性:

作為一種分布式系統(tǒng)拗秘,微服務(wù)引入了復(fù)雜性和其他若干問(wèn)題圣絮,例如網(wǎng)絡(luò)延遲、容錯(cuò)性雕旨、消息序列化扮匠、不可靠的網(wǎng)絡(luò)、異步機(jī)制凡涩、版本化棒搜、差異化的工作負(fù)載等,開(kāi)發(fā)人員需要考慮以上的分布式系統(tǒng)問(wèn)題活箕。

  • 異步機(jī)制:

微服務(wù)往往使用異步編程力麸、消息與并行機(jī)制,如果應(yīng)用存在跨微服務(wù)的事務(wù)性處理育韩,其實(shí)現(xiàn)機(jī)制會(huì)變得復(fù)雜化克蚂。

  • 可測(cè)性的挑戰(zhàn):

在動(dòng)態(tài)環(huán)境下服務(wù)間的交互會(huì)產(chǎn)生非常微妙的行為,難以可視化及全面測(cè)試筋讨。經(jīng)典微服務(wù)往往不太重視測(cè)試埃叭,更多的是通過(guò)監(jiān)控發(fā)現(xiàn)生產(chǎn)環(huán)境的異常,進(jìn)而快速回滾或采取其他必要的行動(dòng)悉罕。但對(duì)于特別在意風(fēng)險(xiǎn)規(guī)避監(jiān)管或投產(chǎn)環(huán)境錯(cuò)誤會(huì)產(chǎn)生顯著影響的場(chǎng)景下需要特別注意赤屋。

微服務(wù)架構(gòu)的取舍

  • 在合適的項(xiàng)目,合適的團(tuán)隊(duì)壁袄,采用微服務(wù)架構(gòu)收益會(huì)大于成本类早。
  • 微服務(wù)架構(gòu)有很多吸引人的地方,但在擁抱微服務(wù)之前嗜逻,也需要認(rèn)清它所帶來(lái)的挑戰(zhàn)涩僻。
  • 需要避免為了“微服務(wù)”而“微服務(wù)”。
  • 微服務(wù)架構(gòu)引入策略 – 對(duì)傳統(tǒng)企業(yè)而言,開(kāi)始時(shí)可以考慮引入部分合適的微服務(wù)架構(gòu)原則對(duì)已有系統(tǒng)進(jìn)行改造或新建微服務(wù)應(yīng)用逆日,逐步探索及積累微服務(wù)架構(gòu)經(jīng)驗(yàn)恼琼,而非全盤實(shí)施微服務(wù)架構(gòu)。

總結(jié)

最后總結(jié)一下屏富,其實(shí)微服務(wù)就是將原本非常臃腫的單體應(yīng)用拆分成若干個(gè)細(xì)粒度的小型服務(wù),獨(dú)立進(jìn)行部署(現(xiàn)在的流行得益于docker容器技術(shù)的飛速發(fā)展)蛙卤,單獨(dú)開(kāi)發(fā)狠半、測(cè)試、運(yùn)維等颤难。
需要特別指出的一點(diǎn)神年,微服務(wù)并不是說(shuō)拆分得越細(xì)越好,而是要貼合業(yè)務(wù)行嗤,考慮整個(gè)系統(tǒng)的質(zhì)量屬性需求已日,根據(jù)實(shí)際情況進(jìn)行橫向拆分和縱向拆分。因?yàn)椴鸱值锰?xì)栅屏,那服務(wù)間的交互通訊以及運(yùn)維工作成本將大大提高飘千,拆分得太粗,又達(dá)不到微服務(wù)的效果栈雳。綜合以上的情況护奈,一般情況下首先是針對(duì)公共模塊的內(nèi)容進(jìn)行收集整理,打包成通用的服務(wù)哥纫,即橫向拆分霉旗;另外還需要考慮不同業(yè)務(wù)之間的耦合度,將相對(duì)獨(dú)立的“服務(wù)集”拆分到不同的服務(wù)中蛀骇,這就是我所理解的縱向拆分厌秒。所以現(xiàn)場(chǎng)場(chǎng)景下都是需要橫向拆分與縱向拆分相結(jié)合使用,才能讓微服務(wù)達(dá)到最好的效果擅憔。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鸵闪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子雕欺,更是在濱河造成了極大的恐慌岛马,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屠列,死亡現(xiàn)場(chǎng)離奇詭異啦逆,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)笛洛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門夏志,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事沟蔑∈铮” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,078評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵厅须,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我朗和,道長(zhǎng),這世上最難降的妖魔是什么眶拉? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,979評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮憔儿,結(jié)果婚禮上忆植,老公的妹妹穿的比我還像新娘谒臼。我一直安慰自己朝刊,他們只是感情好屋休,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布坞古。 她就那樣靜靜地躺著,像睡著了一般劫樟。 火紅的嫁衣襯著肌膚如雪痪枫。 梳的紋絲不亂的頭發(fā)上叠艳,一...
    開(kāi)封第一講書(shū)人閱讀 52,584評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音吃粒,去河邊找鬼。 笑死徐勃,一個(gè)胖子當(dāng)著我的面吹牛早像,可吹牛的內(nèi)容都是我干的僻肖。 我是一名探鬼主播卢鹦,決...
    沈念sama閱讀 41,085評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼揉稚!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起搀玖,我...
    開(kāi)封第一講書(shū)人閱讀 40,023評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎葛超,沒(méi)想到半個(gè)月后延塑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體答渔,經(jīng)...
    沈念sama閱讀 46,555評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評(píng)論 3 342
  • 正文 我和宋清朗相戀三年宋雏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了务豺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,769評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡笼沥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出馆纳,到底是詐尸還是另有隱情汹桦,我是刑警寧澤鲁驶,帶...
    沈念sama閱讀 36,439評(píng)論 5 351
  • 正文 年R本政府宣布钥弯,位于F島的核電站,受9級(jí)特大地震影響脆霎,放射性物質(zhì)發(fā)生泄漏赂蠢。R本人自食惡果不足惜绪穆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評(píng)論 3 335
  • 文/蒙蒙 一玖院、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧难菌,春花似錦、人聲如沸郊酒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,601評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)褐健。三九已至,卻和暖如春蚜迅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坐梯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,702評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工刹帕, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人偷溺。 一個(gè)月前我還...
    沈念sama閱讀 49,191評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像晕翠,于是被迫代替她去往敵國(guó)和親砍濒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子淋肾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評(píng)論 2 361

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