SpringCloud---(1)微服務概述
阿新 • • 發佈:2018-11-09
單體架構:一個歸檔包包含了應用所有功能的應用程式,我們通常稱之為單體應用。架構單體應用的架構風格,我們稱之為單體架構,這是一種比較傳統的架構風格。
單體架構存在的缺點:
- 複雜性逐漸變高
- 技術債務逐漸上升
- 部署速度逐漸變慢
- 阻礙技術創新
- 無法按需伸縮
架構的演進:單體架構---SOA---微服務
微服務: 微服務是以開發一組小型服務的方式來開發一個獨立的應用系統。其中每個小型服務都執行在自己的程序中,並經常採用HTTP資源API這樣輕量的機制來相互通訊。這些服務圍繞業務功能進行構建,並能通過全自動的部署機制來進行獨立部署。這些微服務可以使用不同的語言來編寫,並且可以使用不同的資料儲存技術。對這些微服務我們僅做最低限度的集中管理。
微服務具備的特性:
- 每個微服務可獨立執行在自己的程序中
- 一系列獨立執行的微服務共同構建起了整個系統
- 每個服務為獨立的業務開發,一個微服務一般完成某個特定的功能。比如:訂單管理、使用者管理等。
- 微服務之間通過一些輕量的通訊機制進行通訊,例如通過REST API或者RPC的方式進行呼叫。
微服務的優點:
- 易於開發和維護
- 啟動較快
- 區域性修改容易部署
- 技術棧不受限
- 按需伸縮
- DevOps
微服務帶來的挑戰
- 運維要求較高
- 分散式的複雜性
- 介面調整成本高
- 重複勞動
微服務設計原則
- 單一職責原則
- 服務自治原則
- 輕量級通訊原則
- 介面明確原則
Spring Cloud特點:
- 約定優於配置
- 開箱即用、快速啟動
- 適用於各種環境
- 輕量級的元件
- 元件的支援很豐富,功能很齊全
- 元件的支援很豐富,功能很齊全
- 選型中立