微服務和SpringCloud入門
阿新 • • 發佈:2018-04-29
一個個 事情 一鍵 spring 業務需求 界面 開源組件 選型 通信機制
微服務和SpringCloud入門
微服務是什麽
微服務的核心是將傳統的一站式應用,根據業務拆分成一個一個的服務,徹底去耦合,每個微服務提供單個業務功能的服務,一個服務做一件事情,從技術角度看就是一種小而獨立的處理過程,類似進程概念,能夠進行單獨啟動和銷毀,可以擁有獨立的數據庫。
微服務與微服務架構的區別
- 微服務:它強調的事服務的大小,它關註的是某個點,是具體解決某一個問題/提供落地對應服務的一個服務應用
- 微服務架構:它是一種架構模式,它提成將單一應用程序劃分成一組小的服務,服務之間相互配合協調,為服務提供最終價值。每個服務運行在其獨立的進程中,服務之間采用輕量級的通信機制相互協作。
微服務的優缺點
- 優點
- 每個服務足夠內聚,足夠小,代碼容易理解,聚焦一個指定業務需求或功能。
- 代碼松耦合,無論在開發階段或是部署階段都是獨立的
- 可以用不同的語言開發
- 易於和第三方集成
- 微服務只是業務邏輯的代碼,不會和HTML\CSS或其他界面組件混合
- 每個微服務都有自己的存儲能力,可以有自己的數據庫,也可以有統一的數據庫
- 缺點
- 相比單體應用,整體技術難度有所加大。
- 運維人員工作量提升
- 服務間通信成本增加
- 性能監控復雜
- 等等
微服務技術棧有哪些
- 服務開發
- 服務配置和管理
- 服務註冊與發現
- 服務調用
- 服務熔斷器
- 負載均衡
- 服務接口調用
- 消息隊列
- 服務配置中心管理
- 服務路由
- 服務監控
- 全鏈路追蹤
- 服務部署
- 數據流操作開發包
- 事件消息總線
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入門