微服務(一):爲什麼需要微服務

微服務(一):爲什麼需要微服務

微服務出現的原因

  • 單體架構存在不足

    業務越來越複雜,單體應用的代碼量越來越大,代碼的可讀性、可維護性、可拓展性下降,新人接手代碼所需的時間成倍增加,業務擴展帶來的代價極大。

    單體應用的併發能力有限。

    隔離性差,某部分出現問題時,整個工程都需要重新發布,故障影響範圍大

服務化出現

  • 爲了解決,單體應用的問題,選擇將應用進行切分。相繼出現了SOA及微服務,下面列出Dubbo和spirngCloud的技術區別。
    在這裏插入圖片描述

  • SOA和微服務的一個主要不同點就是自動化程度上的不同。大部分SOA實現只達到了服務級別的抽象,而微服務達到了對服務和運行環境的抽象級別。即SOA只是提供一個service層給其他服務調用,而微服務每個服務都是一個獨立的模塊,負責獨立的業務可獨立運行,並且在docker容器中運行。

  • 微服務的幾個要點:1.微服務單元按業務劃分2.微服務通過HTTP來互相通信3.微服務的數據庫獨立4.微服務的自動部署5.服務集中化管理,即註冊中心6.分佈式架構7.熔斷機制

  • 微服務的優勢

    複雜的業務分解成若干小的業務,業務量變小,新人上手容易。

    分佈式系統,服務於服務間無耦合,具有極強的擴展能力。

    新開發的服務模塊可不侷限於某個技術、語言因爲模塊間相互獨立,只暴露接口。

    重構難度降低,重構時只需要重構某個模塊。

    隔離性強,某個服務出問題了,只需要測試和部署出問題的服務。

    微服務在CAP理論中採用的是AP架構,即具備高可用和分區容錯性。

  • 微服務的缺點

    微服務的複雜度,構建一個微服務需要掌握更多的架構知識和框架知識,服務之間相互調用。

    微服務一般是一個AP系統,要解決C必須要用到分佈式事務。

    服務的劃分需要熟悉業務

    服務的部署,一個大型應用有幾百個服務,一個服務有多個實例,每個服務啓動順序也有要求,部署有難度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章