1 什麼是微服務?
微服務是一種現代化的軟件方法,通過該方法,應用代碼以小巧,易於管理的方式交付,彼此獨立。
微服務爲構建小型,獨立且可運行的應用程序帶來極大的靈活性和彈性。
單體架構
微服務架構
2 爲什麼要建立微服務?
微服務的小規模和相對隔離性可以帶來許多其他好處。
例如更容易維護,提高生產率,更大的容錯能力,更好的業務調整等等。
3 Spring Cloud 微服務
Spring
Spring已成爲構建基於Java的應用程序的事實上的開發框架。
在其核心,Spring是基於依賴注入的概念。
Spring Boot
儘管Spring Boot包含Spring的核心功能,但它剝離了Spring中的許多“企業”功能,而是提供了一個針對基於Java的,面向REST的微服務的框架。
Spring Boot的許多專用功能使在大規模生產中輕鬆構建和運行微服務變得容易。
Spring Cloud 微服務
Spring Cloud可以幫助進行服務發現,負載平衡,斷路,分佈式跟蹤和監視。它甚至可以充當API網關。
沒有Spring Cloud,任何微服務架構都是不完整的。
Spring Cloud 特徵
Spring Cloud專注於爲典型的用例和可擴展性機制提供良好的開箱即用體驗。
- 分佈式配置
- 服務註冊和發現
- 路由
- 服務到服務的調用
- 負載均衡
- 斷路器
- 全局鎖
- 領導選舉和集羣狀態
- 分佈式消息傳遞
Spring Cloud 主要項目
Spring Cloud Config
由git存儲庫支持的集中式外部配置管理。配置資源直接映射到Spring,Environment但如果需要,可以由非Spring應用程序使用。
Spring Cloud Netflix
與各種Netflix OSS組件(Eureka,Hystrix,Ribbon,Zuul等)集成。
Spring Cloud Security
爲Zuul代理中的負載平衡的OAuth2其餘客戶端和身份驗證標頭中繼提供支持。
Spring Cloud Sleuth
Spring Cloud應用程序的分佈式跟蹤,與Zipkin,HTrace和基於日誌(例如ELK)的跟蹤兼容。
Spring Cloud Stream
輕量級的事件驅動型微服務框架,用於快速構建可以連接到外部系統的應用程序。在Spring Boot應用程序之間使用Apache Kafka或RabbitMQ發送和接收消息的簡單聲明性模型。
Spring Cloud 版本
Spring Cloud是一個總括項目,由原則上具有不同發佈節奏的獨立項目組成。爲了管理項目組合,將發佈BOM(物料清單),並帶有對單個項目的精選依賴關係集。發行版本的名稱名稱是按字母順序排列的,帶有倫敦地鐵站的名稱(“ Angel”是第一個發行版,“ Brixton”是第二個發行版)。
Spring Cloud 版本 |
Spring Boot 版本 |
Hoxton |
2.2.x |
Greenwich |
2.1.x |
Finchley |
2.0.x |
Edgware |
1.5.x |
Dalston |
1.5.x |