1. 程式人生 > >SpringCloud---(1)微服務概述

SpringCloud---(1)微服務概述

單體架構:一個歸檔包包含了應用所有功能的應用程式,我們通常稱之為單體應用。架構單體應用的架構風格,我們稱之為單體架構,這是一種比較傳統的架構風格。

 

 

單體架構存在的缺點:

  1. 複雜性逐漸變高
  2. 技術債務逐漸上升
  3. 部署速度逐漸變慢
  4. 阻礙技術創新
  5. 無法按需伸縮

架構的演進:單體架構---SOA---微服務

微服務: 微服務是以開發一組小型服務的方式來開發一個獨立的應用系統。其中每個小型服務都執行在自己的程序中,並經常採用HTTP資源API這樣輕量的機制來相互通訊。這些服務圍繞業務功能進行構建,並能通過全自動的部署機制來進行獨立部署。這些微服務可以使用不同的語言來編寫,並且可以使用不同的資料儲存技術。對這些微服務我們僅做最低限度的集中管理。

 

微服務具備的特性:

  1. 每個微服務可獨立執行在自己的程序中
  2. 一系列獨立執行的微服務共同構建起了整個系統
  3. 每個服務為獨立的業務開發,一個微服務一般完成某個特定的功能。比如:訂單管理、使用者管理等。
  4. 微服務之間通過一些輕量的通訊機制進行通訊,例如通過REST API或者RPC的方式進行呼叫。

微服務的優點:

  1. 易於開發和維護
  2. 啟動較快
  3. 區域性修改容易部署
  4. 技術棧不受限
  5. 按需伸縮
  6. DevOps

微服務帶來的挑戰

  1. 運維要求較高
  2. 分散式的複雜性
  3. 介面調整成本高
  4. 重複勞動

微服務設計原則

  1. 單一職責原則
  2. 服務自治原則
  3. 輕量級通訊原則
  4. 介面明確原則

Spring Cloud特點:

  1. 約定優於配置
  2. 開箱即用、快速啟動
  3. 適用於各種環境
  4. 輕量級的元件
  5. 元件的支援很豐富,功能很齊全
  6. 元件的支援很豐富,功能很齊全
  7. 選型中立