ps:在面試時候問到微服務,而自己對此一無所知,真的是閱曆限制了自己的想象。
微服務的定義和優缺點
先了解一下與微服務對應的單體式(Monolithic)式架構。在Monolithic架構中,系統通常采用分層架構模式,按技術次元對系統進行劃分,比如持久化層、業務邏輯層、表示層。 Monolithic架構主要存在以下問題:
- 系統間通常以API的形式互相通路,耦合緊密導緻難以維護;
- 各業務領域需要采用相同的技術棧,難以快速應用新技術;
- 對系統的任何修改都必須整個系統一起重新部署/更新,運維成本高;
- 在系統負載增加時,難以進行水準擴充;
- 當系統中一處出現問題,會影響整個系統;
微服務架構是一種架構風格,它将一個複雜的應用拆分成多個獨立自治的服務,服務與服務間通過松耦合的形式互動。
主要特點:單一職責,自治
微服務優點:邏輯清晰、簡化部署、可擴充、靈活組合、技術異構、高可靠
缺點:複雜度高(異常處理,一緻性、代碼複用),運維複雜(整體了解)、影響性能(時延)
待續。。。