文章目錄
- 前言
- 叙述
-
- 微服務的特點
-
- 1.獨立部署,靈活擴充
- 2.資源的有效隔離
- 3.團隊組織架構的調整
- 微服務的優缺點
-
- 優點
- 缺點
- 微服務 VS 微服務架構
-
- 微服務
- 微服務架構
- 微服務 VS SOA
-
- SOA
- 為什麼選擇SpringCloud作為微服務架構
-
- 選型依據
- 目前各大IT公司用的微服務架構有哪些
- 各微服務架構對比
- 小結
前言
微服務(Microservice Architecture)是近幾年流行的一種架構思想,關于它的概念很難一言以蔽之。那麼具體什麼是微服務架構呢?接下來我們一起了解一下。
叙述
微服務化的核心就是将傳統的一站式應用,根據業務拆分成一個一個的服務,徹底地去耦合,每一個微服務提供單個業務功能的服務,一個服務做一件事,從技術角度看就是一種小而獨立的處理過程,類似程序概念,能夠自行單獨啟動或銷毀,擁有自己獨立的資料庫。
微服務的特點
1.獨立部署,靈活擴充
傳統的單體架構是以整個系統為機關進行部署,而微服務則是以每一個獨立元件(例如使用者服務,商品服務)為機關進行部署。

圖中左邊是單體架構的叢集,右邊是微服務叢集。
什麼意思呢?比如根據每個服務的吞吐量不同,支付服務需要部署20台機器,使用者服務需要部署30台機器,而商品服務隻需要部署10台機器。這種靈活部署隻有微服務架構才能實作。我們可以單獨的部署這些服務。
2.資源的有效隔離
微服務設計的原則之一,就是每一個微服務擁有獨立的資料源,假如微服務A想要讀寫微服務B的資料庫,隻能調用微服務B對外暴露的接口來完成。這樣有效避免了服務之間争用資料庫和緩存資源所帶來的問題。
3.團隊組織架構的調整
微服務設計的思想也改變了原有的企業研發團隊組織架構。傳統的研發組織架構是水準架構,前端有前端的團隊,後端有後端的團隊,DBA有DBA的團隊,測試有測試的團隊。
而微服務的設計思想對團隊的劃分有着一定的影響,使得團隊組織架構的劃分更傾向于垂直架構,比如使用者業務是一個團隊來負責,支付業務是一個團隊來負責。
微服務的優缺點
優點
- 每個服務足夠内聚,足夠小,代碼容易了解。這樣能聚焦一個指定的業務功能或業務需求開發簡單、開發效率提高,一個服務可能就是專一的隻幹一件事。
- 微服務能夠被小團隊單獨開發,這個小團隊是2到5人的開發人員組成。
- 微服務是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的。
- 微服務能使用不同的語言開發。
- 易于和第三方內建,微服務允許容易且靈活的方式內建自動部署,通過持續內建工具,如Jenkins,Hudson,bamboo。
- 微服務易于被一個開發人員了解,修改和維護,這樣小團隊能夠更關注自己的工作成果。無需通過合作才能展現價值。
- 微服務允許你利用融合最新技術。
- 微服務隻是業務邏輯的代碼,不會和HTML,CSS或其他界面元件混合。
- 每個微服務都有自己的存儲能力,可以有自己的資料庫。也可以有統一資料庫。
缺點
- 開發人員要處理分布式系統的複雜性多服務運維難度,随着服務的增加,運維的壓力也在增大系統部署依賴
- 服務間通信成本增加,資料一緻性很難絕對的保證
- 系統內建測試,增加了開發和測試的複雜度
- 性能監控麻煩
微服務 VS 微服務架構
微服務
強調的是服務的大小,它關注的是某一個點,是具體解決某一個問題,提供落地對應服務的一個服務應用,狹意的看,可以看作Ecipse裡面的一個個微服務工程或者Module
微服務架構
微服務架構是一種架構模式,它提倡将單一應用程式劃分成一組小的服務,服務之間互相協調、互相配合,為使用者提供最終價值。每個服務運作在其獨立的程序中,服務與服務間采用輕量級的通信機制互相協作(通常是基于HTTP協定的RESTfulAPl)。每個服務都圍繞着具體業務進行建構,并且能夠被獨立的部署到生産環境、類生産環境等。另外,應當盡量避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合适的語言、工具對其進行建構。
微服務 VS SOA
SOA
SOA架構是一種粗粒度、松耦合的服務架構,其更多的是強調異構系統之間的服務通信。
SOA是什麼樣子呢?可以是下面這樣的Web Service:
也可以是下面這樣的ESB企業服務總線:
SOA架構強調的是異構系統之間的通信和解耦合,而微服務架構強調的是系統按業務邊界做細粒度的拆分和部署
為什麼選擇SpringCloud作為微服務架構
選型依據
- 整體解決方案和架構成熟度
- 社群熱度
- 可維護性
- 學習曲線
目前各大IT公司用的微服務架構有哪些
-
阿裡Dubbo/HSF
Dubbo是阿裡以梁飛為核心的團隊開發的,但是在2012年團隊走的走,散的散,從那時起Dubbo不再有人維護,直到2017年阿裡才開始重拾Dubbo,開始維護Dubbo,更新- Dubbo,相隔5年,現在阿裡開發的HSF(江湖人稱:好舒服)
- 京東JSF
- 新浪微網誌Motan
- 當當網DubboX
各微服務架構對比
小結
微服務架構算是SOA架構的一種拓展,主要關注的是服務個體的獨立性、拆分粒度更小。相對于SOA架構來說,微服務擁有以下優勢:
微服務強調更深層次的元件化和服務化,每個微服務都可以擁有獨立的運作空間,確定每一個服務元件可以作為單獨的産品進行釋出。
微服務抛棄了傳統SOA笨重的企業服務總線,對外釋出強調使用HTTP REST API的接口釋出形式。
感謝您的閱讀~~