在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    什么是微服務(wù)?

    什么是微服務(wù)?

    微服務(wù)已經(jīng)成為現(xiàn)代軟件開發(fā)的新寵,盡管它們已有十多年的歷史。但是,盡管有好處,但這種范式很容易出錯。那么讓我們來探討一下微服務(wù)是什么,更重要的是,它們不是什么。

    什么是微服務(wù)?

    微服務(wù)架構(gòu)是一種軟件設(shè)計方法,它將應(yīng)用程序分解為通過定義明確的 API 進(jìn)行通信的小型獨(dú)立服務(wù)。由于每個服務(wù)都可以由自治團(tuán)隊(duì)開發(fā)和維護(hù),因此它是最具可擴(kuò)展性的軟件開發(fā)方法。

    微服務(wù)與單體

    微服務(wù)設(shè)計與單體開發(fā)截然相反。單體是一個實(shí)現(xiàn)所有功能的大型代碼庫(“廚房水槽”)。一切都在一個地方,沒有一個組件可以孤立地工作。這意味著應(yīng)用程序必須作為一個整體進(jìn)行測試

    從好的方面來說,單體應(yīng)用很容易啟動和運(yùn)行。由于單體架構(gòu)不同部分之間的關(guān)系是透明的,因此進(jìn)行廣泛的更改很容易。

    然而,隨著公司的發(fā)展和團(tuán)隊(duì)規(guī)模的擴(kuò)大,單體開發(fā)變得更加困難。很快,系統(tǒng)就不能再裝在一個頭上了——移動部件太多了,所以事情變慢了。

    微服務(wù)使公司能夠保持團(tuán)隊(duì)規(guī)模小而敏捷。這個想法是將應(yīng)用程序分解為可以由緊密結(jié)合的團(tuán)隊(duì)自主開發(fā)和部署的小型服務(wù)。

    微服務(wù)的好處

    可擴(kuò)展性

    公司采用微服務(wù)的主要原因是可擴(kuò)展性。服務(wù)可以獨(dú)立開發(fā)和發(fā)布,無需在組織內(nèi)安排大規(guī)模的協(xié)調(diào)工作。

    誤隔離

    擁有分布式系統(tǒng)的一個好處是能夠避免單個故障點(diǎn)。您可以使用支持云的技術(shù)在不同的可用區(qū)部署微服務(wù),確保您的用戶永遠(yuǎn)不會遇到中斷。

    較小的團(tuán)隊(duì)

    使用微服務(wù),開發(fā)團(tuán)隊(duì)可以保持小而有凝聚力。小組越小,溝通開銷越少,協(xié)作越好。

    亞馬遜通過他們的兩個披薩團(tuán)隊(duì)將團(tuán)隊(duì)規(guī)模發(fā)揮到了極致。這意味著一個團(tuán)隊(duì)?wèi)?yīng)該足夠小,可以吃兩個比薩餅。

    選擇技術(shù)堆棧的自由

    對于單體應(yīng)用,語言和技術(shù)堆棧選項(xiàng)幾乎從一開始就設(shè)置好了。新開發(fā)人員必須適應(yīng)過去做出的任何選擇。

    相比之下,每個微服務(wù)都可以使用最適合解決手頭任務(wù)的技術(shù)堆棧。因此,團(tuán)隊(duì)可以為工作和他們的技能選擇最佳工具。例如,您可以使用 Go 或 C 實(shí)現(xiàn)高性能服務(wù),并使用 Erlang 或 Elixir 實(shí)現(xiàn)高容錯微服務(wù)。

    更頻繁的發(fā)布

    隨著小團(tuán)隊(duì)迭代速度更快,開發(fā)和測試周期更短。而且,由于他們還可以隨時部署更新,微服務(wù)的部署頻率比單體應(yīng)用要高得多。

    微服務(wù)設(shè)計挑戰(zhàn)

    有這么多好處,似乎為新項(xiàng)目選擇微服務(wù)是一件輕而易舉的事。但是微服務(wù)設(shè)計也帶來了一些嚴(yán)峻的挑戰(zhàn):

    • Small:適用于團(tuán)隊(duì)規(guī)模和代碼庫。微服務(wù)必須小到足以被一個人完全理解。如果從頭開始重寫它需要超過 sprint 的時間,那么你的微服務(wù)就太大了。
    • 專注于一件事:服務(wù)必須專注于問題的一個方面或只執(zhí)行一項(xiàng)任務(wù)。
    • 自治:自治允許團(tuán)隊(duì)選擇最合適的語言堆棧和數(shù)據(jù)模型。這通常意味著每個微服務(wù)都有自己的數(shù)據(jù)庫或持久層,不與其他服務(wù)共享。
    • 與有界上下文一致:在軟件中,我們創(chuàng)建模型來表示我們想要解決的問題。有界上下文表示給定模型的限制。上下文是服務(wù)的自然邊界,因此找到它們是設(shè)計良好微服務(wù)架構(gòu)的一部分。
    • 松耦合:雖然微服務(wù)可以依賴于其他微服務(wù),但我們必須注意它們的通信方式。每次跨越有界上下文時,都需要某種程度的抽象和翻譯,以防止一個服務(wù)中的行為更改影響其他服務(wù)。
    • 可獨(dú)立部署:由于是自治且松耦合的,團(tuán)隊(duì)可以在幾乎沒有外部協(xié)調(diào)或集成測試的情況下部署他們的微服務(wù)。微服務(wù)應(yīng)該通過定義明確的 API 進(jìn)行通信,并使用翻譯層來防止一項(xiàng)服務(wù)中的行為更改影響其他服務(wù)。

    當(dāng)微服務(wù)不是微服務(wù)時

    你怎么知道你是否在做正確的微服務(wù)設(shè)計?如果您的團(tuán)隊(duì)可以在不與其他團(tuán)隊(duì)協(xié)調(diào)的情況下隨時部署更新,并且如果其他團(tuán)隊(duì)可以類似地部署他們的更改而不影響您,那么恭喜您,您掌握了微服務(wù)的訣竅。

    失去微服務(wù)提供的好處的最可靠方法是不遵守解耦規(guī)則。如果我們仔細(xì)觀察,我們會發(fā)現(xiàn)微服務(wù)都是關(guān)于自治的。當(dāng)這種自主權(quán)喪失時,團(tuán)隊(duì)必須在開發(fā)和部署期間進(jìn)行協(xié)調(diào)。需要完美的集成測試來確保所有微服務(wù)協(xié)同工作。

    即便如此,詳盡的測試也無法捕捉到所有問題。當(dāng)出現(xiàn)問題時,耦合服務(wù)是很難調(diào)試的。當(dāng)問題被發(fā)現(xiàn)時,修復(fù)它并不總是像回滾更新那么容易。

    緊密的服務(wù)依賴關(guān)系創(chuàng)建團(tuán)隊(duì)依賴關(guān)系。

    這些都是分布式計算帶來的問題。如果您曾經(jīng)使用過云服務(wù),您就會知道將服務(wù)或機(jī)器分布在多個地理位置與在同一站點(diǎn)上運(yùn)行所有內(nèi)容不同。分布式系統(tǒng)具有更高的延遲,可能存在同步問題,并且更難管理和調(diào)試。這種高度耦合的服務(wù)架構(gòu)實(shí)際上是一個分布式單體架構(gòu),具有兩全其美的優(yōu)點(diǎn),也沒有微服務(wù)應(yīng)該帶來的任何好處。

    如果您在不與其他團(tuán)隊(duì)協(xié)調(diào)或依賴其他微服務(wù)的特定版本來部署您的微服務(wù)的情況下無法進(jìn)行部署,那么您只是在分發(fā)您的單體應(yīng)用。

    當(dāng)微服務(wù)不是最佳選擇時

    微服務(wù)并沒有取代單體。兩者都是有效的方法。事實(shí)上,當(dāng)團(tuán)隊(duì)仍在探索他們正在構(gòu)建的東西時,單體應(yīng)用可能是最佳選擇。

    單體應(yīng)用就像是項(xiàng)目的自然起點(diǎn),因?yàn)樗子陂_發(fā)、快速迭代、快速部署、易于調(diào)試,并且更能容忍設(shè)計錯誤。在可擴(kuò)展性成為問題之前,單體應(yīng)用可以讓您走得更遠(yuǎn)。

    微服務(wù)適合您嗎?

    微服務(wù)是我們開發(fā)軟件的最具可擴(kuò)展性的方式。但它們不是免費(fèi)的午餐。如果您不小心,它們會帶來一些很容易發(fā)生沖突的風(fēng)險。當(dāng)團(tuán)隊(duì)正在成長并且您需要保持快速和敏捷時,它們非常有用。但是你需要對要解決的問題有一個很好的理解,否則你最終會得到一個分布式的單體。

    歡迎關(guān)注我的抖音號:

    喜歡的朋友記得給個關(guān)注~

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
    用戶投稿
    上一篇 2022年6月22日 06:07
    下一篇 2022年6月22日 06:08

    相關(guān)推薦

    • 分享4條發(fā)微商朋友圈的方法(微商朋友圈應(yīng)該怎么發(fā))

      對于微商朋友來說,朋友圈的重要性不言而喻了。 那么微商的朋友圈到底該怎么發(fā)呢? 為什么同樣是經(jīng)營一個朋友圈,有的微商看起來逼格滿滿,實(shí)際效果也不錯;而有的卻動都不動就被屏蔽甚至拉黑…

      2022年11月27日
    • 《寶可夢朱紫》夢特性怎么獲得?隱藏特性獲取方法推薦

      寶可夢朱紫里有很多寶可夢都是擁有夢特性會變強(qiáng)的寶可夢,很多玩家不知道夢特性怎么獲得,下面就給大家?guī)韺毧蓧糁熳想[藏特性獲取方法推薦,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 …

      2022年11月25日
    • 《寶可夢朱紫》奇魯莉安怎么進(jìn)化?奇魯莉安進(jìn)化方法分享

      寶可夢朱紫中的奇魯莉安要怎么進(jìn)化呢?很多玩家都不知道,下面就給大家?guī)韺毧蓧糁熳掀骠斃虬策M(jìn)化方法分享,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 奇魯莉安進(jìn)化方法分享 奇魯莉安…

      2022年11月25日
    • 銳龍97900x參數(shù)規(guī)格跑分評測 銳龍97900x屬于什么檔次

      銳龍9 7900X是銳龍7000系列處理器中性能頂尖的型號之一,它采用了這一代標(biāo)配的zen4架構(gòu)和5nm制程工藝,那么它具體的參數(shù)跑分如何,在電腦上世紀(jì)發(fā)揮怎么樣呢,下面就來看看銳…

      2022年11月24日
    • 《我在島嶼讀書》:文壇大家是最會講故事的人

      當(dāng)余華、蘇童、西川這些文壇大家相聚在一起,會碰撞出怎樣的火花?外景紀(jì)實(shí)類讀書節(jié)目《我在島嶼讀書》給出了答案。 上周節(jié)目首播之后,觀眾一邊從中汲取文學(xué)養(yǎng)分,一邊又驚嘆于作家們接地氣的…

      2022年11月24日
    • 《寶可夢朱紫》暴飛龍?jiān)趺醋ィ勘╋w龍獲得方法

      寶可夢朱紫暴飛龍位置在哪?在游戲中,很多玩家還不清楚暴飛龍具體要怎么樣獲得,其實(shí)獲得方法很簡單,暴飛龍直接是沒得抓的,需要玩家從寶貝龍進(jìn)化得到,下面一起來看一下寶可夢朱紫暴飛龍獲得…

      2022年11月23日
    • 《寶可夢朱紫》布土撥怎么進(jìn)化?布土撥進(jìn)化方法介紹

      寶可夢朱紫中,不同的寶可夢有不同的進(jìn)化方法,其中布土撥的進(jìn)化方法是比較特殊的。很多玩家不知道寶可夢朱紫布土撥怎么進(jìn)化,下面就帶來寶可夢朱紫布土撥進(jìn)化方法介紹,一起來看看吧,希望能幫…

      2022年11月23日
    • 《寶可夢朱紫》薄荷怎么獲得?薄荷獲得方法

      寶可夢朱紫中薄荷有改變寶可夢的屬性或性格等效果,很多玩家想知道寶可夢朱紫薄荷怎么獲得,下面就帶來寶可夢朱紫薄荷獲得方法,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 薄荷獲得方法…

      2022年11月23日
    • 《寶可夢朱紫》怎么交換精靈?交換精靈方法一覽

      寶可夢朱紫中玩家可以和好友或者npc進(jìn)行交換寶可夢獲得自己沒有的寶可夢,很多玩家想知道寶可夢朱紫怎么交換精靈,下面就帶來寶可夢朱紫交換精靈方法一覽,感興趣的小伙伴不要錯過,希望能幫…

      2022年11月23日
    • 《寶可夢朱紫》龍爪技能怎么獲得?龍爪技能獲取方法

      寶可夢朱紫龍爪技能怎么獲得?在游戲中,很多玩家還不清楚龍爪技能應(yīng)該怎么獲取,其實(shí)獲取方法有很多,下面一起來看一下寶可夢朱紫龍爪技能獲取方法,希望可以幫助各位玩家順利的進(jìn)行游戲內(nèi)容?!?/p>

      2022年11月23日

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息