1. 微服務簡介
1.1 什麼是微服務架構
- 微服務架構是系統架構上的一種設計風格
- 將大系統拆分紅N個小型服務
- 這些小型服務都在各自的線程中運行
- 小服務間經過HTTP協議進行通訊
- 有本身的數據存儲、業務開發、自動化測試和獨立部署機制
- 能夠由不一樣語言編寫
小結:微服務架構的思想,不僅是停留在開發階段,它貫穿了設計,研發,測試,發佈,運維等各個軟件生命週期。git
2. 架構體系
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
架構樣例:
github
2.1 微服務發佈--持續集成
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
3. 微服務架構九大特性
- 服務組件化
-- 組件是可獨立更換、升級的單元。就像PC中的內存,CPU同樣。
- 按業務組織團隊
-- 要求人員全棧技能
- 作「產品」的態度
-- 對整個產品生命週期負責,而不是作「項目」交付態度
- 智能端點與啞管道
-- 微服務間的通信方式:
--- HTTP的RESTful API
--- MessageMQ消息隊列
- 去中心化治理
--不是每個問題都是釘子,不是每個解決方案都是錘子。
- 去中心化數據管理
--獨立維護各服務數據存儲,儘可能使服務間「無事物」調用,經過補償機制維護數據一致性問題
- 基礎設施自動化
-- 自動化測試
-- 自動化部署
- 容錯設計
-- 每一個服務實現監控和日誌組件,好比服務狀態,斷路器狀態,吞吐量,網絡數據等關鍵數據儀表盤
- 演進式設計
--初期單體,逐步拆分,抽取公共組件
4. 微服務選型
-
Dubbo 是阿里多年構建生產級分佈式微服務的技術結晶,服務治理能力很是豐富,在國內技術社區具備很大影響力,目前 github 上有超過 16k 星。Dubbo 本質上是一套基於 Java 的 RPC 框架,噹噹 Dubbox 擴展了 Dubbo 支持 RESTful 接口暴露能力。spring
-
Dubbo 主要面向 Java 技術棧,跨語言支持不足是它的一個弱項,另外由於治理能力太豐富,以致於這個框架比較重,徹底用好這個框架的門檻比較高,可是若是你的企業基本上投資在 Java 技術棧上,選 Dubbo 可讓你在服務框架一塊站在較高的起點上,無論是性能仍是企業級的服務治理能力,Dubbo 都作的很出色。網絡
- 新浪微博開源的 Motan(GitHub 4k stars)也不錯,功能和 Dubbo 相似,能夠認爲是一個輕量裁剪版的 Dubbo。
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
5. Spring Cloud 介紹
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
6. Spring Cloud 版本管理
http://projects.spring.io/spring-cloud/運維
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)