1. 程式人生 > >微服務和SpringCloud入門

微服務和SpringCloud入門

一個個 事情 一鍵 spring 業務需求 界面 開源組件 選型 通信機制

微服務和SpringCloud入門

微服務是什麽

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

微服務與微服務架構的區別

  • 微服務:它強調的事服務的大小,它關註的是某個點,是具體解決某一個問題/提供落地對應服務的一個服務應用
  • 微服務架構:它是一種架構模式,它提成將單一應用程序劃分成一組小的服務,服務之間相互配合協調,為服務提供最終價值。每個服務運行在其獨立的進程中,服務之間采用輕量級的通信機制相互協作。

微服務的優缺點

  1. 優點
  • 每個服務足夠內聚,足夠小,代碼容易理解,聚焦一個指定業務需求或功能。
  • 代碼松耦合,無論在開發階段或是部署階段都是獨立的
  • 可以用不同的語言開發
  • 易於和第三方集成
  • 微服務只是業務邏輯的代碼,不會和HTML\CSS或其他界面組件混合
  • 每個微服務都有自己的存儲能力,可以有自己的數據庫,也可以有統一的數據庫
  1. 缺點
  • 相比單體應用,整體技術難度有所加大。
  • 運維人員工作量提升
  • 服務間通信成本增加
  • 性能監控復雜
  • 等等

微服務技術棧有哪些

  1. 服務開發
  2. 服務配置和管理
  3. 服務註冊與發現
  4. 服務調用
  5. 服務熔斷器
  6. 負載均衡
  7. 服務接口調用
  8. 消息隊列
  9. 服務配置中心管理
  10. 服務路由
  11. 服務監控
  12. 全鏈路追蹤
  13. 服務部署
  14. 數據流操作開發包
  15. 事件消息總線

SpringCloud是什麽

  • 概述:它是分布式微服務架構下的一站式解決方案,是各個微服務架構落地技術的集合體,俗稱微服務全家桶。
  • 詳細介紹:
    SpringCloud基於SpringBoot提供了一套微服務解決方案,包括服務註冊與發現,配置中心,全鏈路監控,服務網關,負載均衡,熔斷器等組件,除了基於NetFlix的開源組件做高度抽象封裝之外,還有一些選型中立的組件。
    SpringCloud利用SpringBoot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,SpringCloud為開發人員提供了快速構建分布式系統的一些工具,包括:配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等等,它們都可以利用SpringBoot的開發風格做到一鍵啟動和部署
    SpringCloud沒有重復造輪子,它只是將目前各個公司開發的比較成熟、經得起實踐檢驗的服務框架組合起來,通過Springboot風格進行再封裝,屏蔽掉了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂,易部署和易維護的分布式系統開發工具包。

SpringCloud和SpringBoot是什麽關系

  • Springboot專註於快速方便的開發單個個體微服務。
  • SpringCloud專註於全局的微服務協調整理治理框架,它將SpringBoot開發的一個個微服務管理起來,為各個微服務之間提供服務。

SpringCloud和Dubbo的比較

技術分享圖片

Dubbo在2012年被阿裏停止更新和維護,期間SpringCloud卻在飛速發展,2017年Dubbo由阿裏宣布重新更新和維護。由上圖可以看出兩者的差距。剔除dubbo功能支持不完善來說,二者最大的區別是服務調用方式不同,Dubbo采用RPC通信,SpringCloud采用基於HTTP的REST方式通信。REST犧牲了性能,但卻更靈活,在快速演化的微服務環境下更加適用。

以下是阿裏劉軍,Dubbo重啟維護的負責人對二者的比較

技術分享圖片

微服務和SpringCloud入門