Spring Cloud微服務實戰閱讀筆記(一) 基礎知識 ...
本文系《Spring Cloud微服務實戰》作者:翟永超,一書的閱讀筆記。
一:基礎知識 1:什麼是微服務架構 是一種架構設計風格,主旨是將一個原本獨立的系統拆分成多個小型服務,這些小型服務都在各自獨立的進程中運行,服務之間通過基於HTTP的RESTful API進行通信協作。 被拆分的每一個小型服務都圍繞系統中的一項或者一些耦合度較高的業務功能進行構建,每個服務維護著自身的數據存儲,業務開發,自動化測試以及獨立部署。 2:實施微服務帶來的問題:
- 運維的新挑戰;
- 介面的一致性;
- 分散式的複雜性;
- 服務組件化;
- 按業務組織團隊;
- 做“產品”的態度;
- 智能端點與啞管道;
- 去中心化治理;
- 去中心化管理數據;
- 基礎設施自動化;
- 容錯設計;
- 演進式設計;
服務治理 | 阿裡巴巴Dobbo,噹噹網DubboX,Netflix的Eureka,Apache的Consul等 |
分散式配置管理 | 百度的Disconf,Netflix的Archaius,360的QConf,Spring Cloud的Config,淘寶網的Diamond等 |
批量任務 | 噹噹網的Elastic-Job,LinkedIn的Azkaban,Spring Cloud的Task等 |
服務跟蹤 | 京東的Hydra,Spring Cloud的Sleuth,Twitter的Zipkin等 |
- Spring Cloud Config:配置管理工具,支持使用Git存儲配置內容,可以使用它實現應用配置的外部化存儲,支持客戶端配置信息刷新,加密/解密配置內容等。
- Spring Cloud Netflix:核心組件,對多個Netflix開源套件進行整合。
- Eureka:服務治理組件,包括服務註冊中心、服務註冊與發現機制的實現。
- Hystrix:容錯管理組件,實現斷路器模式,為服務依賴中出現的延遲和故障提供容錯能力;
- Ribbon:客戶端負載均衡;
- Feign:基於Hystrix和Ribbon的聲明式服務調用組件;
- Zuul:網關組件,提供只能路由、訪問過濾等功能;
- Archaius:外部化配置組件;
- Spring Cloud Bus:消息匯流排,用於傳播集群中的狀態變化或者事件,以觸發後續處理,比如用來動態刷新配置等。
- Spring Cloud Cluster:針對Zookeeper、Redis、Hazelcast、Consul的選舉演算法和通用狀態模式的實現。
- Spring Cloud Cloudfoundry:與Pivotal Cloudfoundry的整合支持;
- Spring Cloud Stream:通過Redis、Rabbit或者Kafka實現的消費微服務,可以通過簡單的聲明式模型來發送和接收消息;
- Spring Cloud Security:安全工具包,提供在zuul代理中對OAuth2客戶端請求的中繼器;
- 等
Component | Edgware.SR1 | Finchley.M5 | Finchley.BUILD-SNAPSHOT |
spring-cloud-aws | 1.2.2.RELEASE | 2.0.0.M2 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-bus | 1.3.2.RELEASE | 2.0.0.M4 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-cli | 1.4.1.RELEASE | 2.0.0.M1 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-commons | 1.3.1.RELEASE | 2.0.0.M5 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-contract | 1.2.2.RELEASE | 2.0.0.M5 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-config | 1.4.1.RELEASE | 2.0.0.M5 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-netflix | 1.4.2.RELEASE | 2.0.0.M5 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-security | 1.2.2.RELEASE | 2.0.0.M1 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-cloudfoundry | 1.1.1.RELEASE | 2.0.0.M2 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-consul | 1.3.1.RELEASE | 2.0.0.M4 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-sleuth | 1.3.1.RELEASE | 2.0.0.M5 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-stream | Ditmars.SR3 | Elmhurst.M3 | Elmhurst.BUILD-SNAPSHOT |
spring-cloud-zookeeper | 1.2.0.RELEASE | 2.0.0.M4 | 2.0.0.BUILD-SNAPSHOT |
spring-boot | 1.5.9.RELEASE | 2.0.0.M7 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-task | 1.2.2.RELEASE | 2.0.0.M2 | 2.0.0.RELEASE |
spring-cloud-vault | 1.1.0.RELEASE | 2.0.0.M4 | 2.0.0.BUILD-SNAPSHOT |
spring-cloud-gateway | 1.0.1.RELEASE | 2.0.0.M5 | 2.0.0.BUILD-SNAPSHOT |