什麼是微服務——微服務架構體系介紹

Why Microservices?

回答這個問題前,我們先看下之前大行其道單體架構 - Monolithic Architecture,對於非專業人士來講,所謂的單體架構,其就像一個超大容器,容器內集中包含了該應用的所有軟件組件,並且組件與組件之間緊密耦合。

在這裏插入圖片描述
對於這種架構,其缺陷或者說潛在不足也很明顯,簡單總結如下:

  • 臃腫僵化不靈活: 單體架構很難採用多種技術
  • 可靠性較差: 這種架構最明顯的特徵就是牽一髮而動全身,一個小小的功能失效可能會導致整個系統的不可用
  • 擴展性較差: 應用本身無法輕易的進行擴展,一旦需要進行對某個或者某些功能進行擴展或者更新,我們需要重新構建整個系統
  • 阻礙連續性的開發: 應用的許多功能特性無法被同時構建和部署
  • 開發速度慢: 單體應用的開發耗時較長,因爲我們需要依次構建相應的功能模塊
  • 不適用於複雜的應用: 複雜應用的各個功能特性緊耦合

何爲微服務?

微服務,又稱微服務架構,這種架構聚焦業務領域,將應用通過一個個小而自治的服務組織起來。在微服務架構中,每一個服務都是自包含的且唯一實現某個單一業務功能。
在這裏插入圖片描述

微服務與傳統單體架構的區別

在這裏插入圖片描述
爲了便於理解,我們這裏以我們常見的電子商務應用爲示例說明,很明顯,傳統的單體架構下,所有服務共享一個應用實例並且共享同一個後臺數據庫,而微服務架構下則應用本身業務功能劃分爲不同的微小服務,每個服務都自行處理各自業務數據,處理不同的業務功能。

微服務架構

接下來,我們進一步瞭解下微服務架構究竟有哪些特徵以及什麼是微服務,看下面的架構圖例。
在這裏插入圖片描述

  • 設備不同,各客戶端所使用的服務也不盡相同,比如:檢索、構建、配置抑或其他管理功能
  • 基於各自業務領域的不同,每個服務都相對獨立,而且會根據實際被進一步細化爲更小粒度的服務
  • 每個服務都有各自的負載均衡和運行環境,並且各自擁有相對獨立的數據源
  • 服務間的通信通常採用無狀態通信協議,比如:REST或者消息總線
  • 藉助服務發現機制,服務消費方與提供方可以彼此無憂通信,並可進行一些自動化及監控操作
  • 服務與客戶端的交互都是通過服務網關進行的
  • 所有內部聯通節點均與服務網關相連,即一旦你連接到服務網關,你即可訪問網關後的所有服務端口

微服務的主要特徵

在這裏插入圖片描述

  • 解耦
  • 組件化
  • 業務功能化
  • 自治
  • 持續集成
  • 單一責任
  • 去中心化
  • 敏捷

微服務架構的優勢

在這裏插入圖片描述

  • 獨立部署
  • 獨立開發
  • 故障隔離
  • 混合技術棧
  • 細粒度級擴展,即單個組件可以自由橫向擴展

微服務架構設計最佳實踐

在這裏插入圖片描述

原文鏈接:

https://www.edureka.co/blog/what-is-microservices/

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