天天看點

springcloud入門--了解微服務前言叙述小結

文章目錄

  • 前言
  • 叙述
    • 微服務的特點
      • 1.獨立部署,靈活擴充
      • 2.資源的有效隔離
      • 3.團隊組織架構的調整
    • 微服務的優缺點
      • 優點
      • 缺點
    • 微服務 VS 微服務架構
      • 微服務
      • 微服務架構
    • 微服務 VS SOA
      • SOA
    • 為什麼選擇SpringCloud作為微服務架構
      • 選型依據
      • 目前各大IT公司用的微服務架構有哪些
      • 各微服務架構對比
  • 小結

前言

  微服務(Microservice Architecture)是近幾年流行的一種架構思想,關于它的概念很難一言以蔽之。那麼具體什麼是微服務架構呢?接下來我們一起了解一下。

叙述

  微服務化的核心就是将傳統的一站式應用,根據業務拆分成一個一個的服務,徹底地去耦合,每一個微服務提供單個業務功能的服務,一個服務做一件事,從技術角度看就是一種小而獨立的處理過程,類似程序概念,能夠自行單獨啟動或銷毀,擁有自己獨立的資料庫。

微服務的特點

1.獨立部署,靈活擴充

  傳統的單體架構是以整個系統為機關進行部署,而微服務則是以每一個獨立元件(例如使用者服務,商品服務)為機關進行部署。

springcloud入門--了解微服務前言叙述小結

圖中左邊是單體架構的叢集,右邊是微服務叢集。

什麼意思呢?比如根據每個服務的吞吐量不同,支付服務需要部署20台機器,使用者服務需要部署30台機器,而商品服務隻需要部署10台機器。這種靈活部署隻有微服務架構才能實作。我們可以單獨的部署這些服務。

2.資源的有效隔離

  微服務設計的原則之一,就是每一個微服務擁有獨立的資料源,假如微服務A想要讀寫微服務B的資料庫,隻能調用微服務B對外暴露的接口來完成。這樣有效避免了服務之間争用資料庫和緩存資源所帶來的問題。

springcloud入門--了解微服務前言叙述小結

3.團隊組織架構的調整

  微服務設計的思想也改變了原有的企業研發團隊組織架構。傳統的研發組織架構是水準架構,前端有前端的團隊,後端有後端的團隊,DBA有DBA的團隊,測試有測試的團隊。

springcloud入門--了解微服務前言叙述小結

  而微服務的設計思想對團隊的劃分有着一定的影響,使得團隊組織架構的劃分更傾向于垂直架構,比如使用者業務是一個團隊來負責,支付業務是一個團隊來負責。

springcloud入門--了解微服務前言叙述小結

微服務的優缺點

優點

  1. 每個服務足夠内聚,足夠小,代碼容易了解。這樣能聚焦一個指定的業務功能或業務需求開發簡單、開發效率提高,一個服務可能就是專一的隻幹一件事。
  2. 微服務能夠被小團隊單獨開發,這個小團隊是2到5人的開發人員組成。
  3. 微服務是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的。
  4. 微服務能使用不同的語言開發。
  5. 易于和第三方內建,微服務允許容易且靈活的方式內建自動部署,通過持續內建工具,如Jenkins,Hudson,bamboo。
  6. 微服務易于被一個開發人員了解,修改和維護,這樣小團隊能夠更關注自己的工作成果。無需通過合作才能展現價值。
  7. 微服務允許你利用融合最新技術。
  8. 微服務隻是業務邏輯的代碼,不會和HTML,CSS或其他界面元件混合。
  9. 每個微服務都有自己的存儲能力,可以有自己的資料庫。也可以有統一資料庫。

缺點

  1. 開發人員要處理分布式系統的複雜性多服務運維難度,随着服務的增加,運維的壓力也在增大系統部署依賴
  2. 服務間通信成本增加,資料一緻性很難絕對的保證
  3. 系統內建測試,增加了開發和測試的複雜度
  4. 性能監控麻煩

微服務 VS 微服務架構

微服務

強調的是服務的大小,它關注的是某一個點,是具體解決某一個問題,提供落地對應服務的一個服務應用,狹意的看,可以看作Ecipse裡面的一個個微服務工程或者Module

微服務架構

微服務架構是一種架構模式,它提倡将單一應用程式劃分成一組小的服務,服務之間互相協調、互相配合,為使用者提供最終價值。每個服務運作在其獨立的程序中,服務與服務間采用輕量級的通信機制互相協作(通常是基于HTTP協定的RESTfulAPl)。每個服務都圍繞着具體業務進行建構,并且能夠被獨立的部署到生産環境、類生産環境等。另外,應當盡量避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合适的語言、工具對其進行建構。

微服務 VS SOA

SOA

SOA架構是一種粗粒度、松耦合的服務架構,其更多的是強調異構系統之間的服務通信。

SOA是什麼樣子呢?可以是下面這樣的Web Service:

springcloud入門--了解微服務前言叙述小結

也可以是下面這樣的ESB企業服務總線:

springcloud入門--了解微服務前言叙述小結

SOA架構強調的是異構系統之間的通信和解耦合,而微服務架構強調的是系統按業務邊界做細粒度的拆分和部署

為什麼選擇SpringCloud作為微服務架構

選型依據

  • 整體解決方案和架構成熟度
  • 社群熱度
  • 可維護性
  • 學習曲線

目前各大IT公司用的微服務架構有哪些

  • 阿裡Dubbo/HSF

    Dubbo是阿裡以梁飛為核心的團隊開發的,但是在2012年團隊走的走,散的散,從那時起Dubbo不再有人維護,直到2017年阿裡才開始重拾Dubbo,開始維護Dubbo,更新- Dubbo,相隔5年,現在阿裡開發的HSF(江湖人稱:好舒服)

  • 京東JSF
  • 新浪微網誌Motan
  • 當當網DubboX

各微服務架構對比

springcloud入門--了解微服務前言叙述小結
springcloud入門--了解微服務前言叙述小結

小結

  微服務架構算是SOA架構的一種拓展,主要關注的是服務個體的獨立性、拆分粒度更小。相對于SOA架構來說,微服務擁有以下優勢:

微服務強調更深層次的元件化和服務化,每個微服務都可以擁有獨立的運作空間,確定每一個服務元件可以作為單獨的産品進行釋出。

  微服務抛棄了傳統SOA笨重的企業服務總線,對外釋出強調使用HTTP REST API的接口釋出形式。

感謝您的閱讀~~

繼續閱讀