1恢氯、什么是Spring Cloud?
說起微服務架構阱州,很多編程人員都有個大致概念挑秉,但是為什么要使用微服務架構,很多人也都說不上來苔货。Spring Cloud的出現(xiàn)犀概,可以說是對微服務架構的巨大支持和強有力的技術后盾。準確來說夜惭,它不是一個框架姻灶,而是一個大的容器,它將市面上較好的微服務框架集成進來诈茧,從而簡化了開發(fā)者的代碼量产喉。相比Dubbo等RPC框架, Spring Cloud提供了全套的分布式系統(tǒng)解決方案。
Spring Cloud是一個基于Spring Boot實現(xiàn)的微服務架構開發(fā)工具敢会,在了解Spring Cloud之前曾沈,需要掌握Spring Boot的一定基礎知識。
2鸥昏、為什么要學習Spring Cloud塞俱?
Spring Cloud為微服務架構開發(fā)涉及的配置管理,服務治理互广,熔斷機制敛腌,智能路由,微代理惫皱,控制總線像樊,一次性token,全局一致性鎖旅敷,leader選舉生棍,分布式session,集群狀態(tài)管理等操作提供了一種簡單的開發(fā)方式媳谁。同時也為開發(fā)者提供了快速構建分布式系統(tǒng)的工具涂滴,開發(fā)者可以快速的啟動服務或構建應用友酱、同時能夠快速和云平臺資源進行對接。
優(yōu)點:
A柔纵、Spring Cloud集大成缔杉, 包含了微服務架構的方方面面。
B搁料、約定優(yōu)于配置或详,基于注解,沒有配置文件郭计。
C霸琴、輕量級組件,整合的組件大多是輕量級昭伸,且都是各自領域的佼佼者梧乘。
D、開發(fā)簡便庐杨,對各個組件進行了大量的封裝选调,簡化了開發(fā)。
E辑莫、開發(fā)靈活学歧,組件都是解耦的,開發(fā)人員可以靈活按需選擇組件各吨。
缺點:
A枝笨、項目結構復雜,每一個組件或者每一個服務都需要創(chuàng)建一個項目揭蜒。
B横浑、部署門檻高,項目部署需要配合 Docker 等容器技術進行集群部署屉更,而要想深入了解 Docker徙融,需要較高學習成本。
3瑰谜、Spring Cloud子項目介紹
1欺冀、Spring Cloud Config: 分布式系統(tǒng)中的外部配置,配置管理工具萨脑,支持使用Git存儲配置內容隐轩,支持應用配置的外部化存儲,支持客戶端配置信息刷新渤早、加解密配置內容等职车。
2、Spring Cloud Cluster: 針對 ZooKeeper、 Redis悴灵、 Hazelcast扛芽、 Consul 的選舉算法和通用狀態(tài)模式的實現(xiàn)。
——Spring Cloud Consul:封裝了Consul操作积瞒,consul是一個服務發(fā)現(xiàn)與配置工具川尖,與Docker容器可以無縫集成。
——Spring Cloud Zookeeper:操作Zookeeper的工具包赡鲜,用于使用zookeeper方式的服務注冊和發(fā)現(xiàn)空厌。
3、Spring Cloud Netflix: 針對多種Netflix組件提供的開發(fā)工具包银酬,其中包括Eureka、Hystrix筐钟、Zuul揩瞪、Archaius等。
——Netflix Eureka:基于rest服務服務治理組件篓冲, 包含服務注冊中心李破、 服務注冊與發(fā)現(xiàn)機制的實現(xiàn),實現(xiàn)了云端負載均衡和中間層服務器的故障轉移壹将。
——Netflix Hystrix:容錯管理組件嗤攻,實現(xiàn)斷路器模式,幫助服務依賴中出現(xiàn)的延遲和為故障提供強大的容錯能力诽俯。
——Netflix Ribbon:客戶端負載均衡的服務調用組件妇菱。
——Netflix Feign:基于Ribbon和Hystrix的聲明式服務調用組件。
——Netflix Zuul:微服務網(wǎng)關暴区,提供動態(tài)路由闯团,訪問過濾等服務。
——Netflix Archaius:外部化配置組件仙粱,配置管理API房交,包含一系列配置管理API,提供動態(tài)類型化屬性伐割、線程安全配置操作候味、輪詢框架、回調機制等功能隔心。
4白群、Spring Cloud Bus: 事件、消息總線济炎,用于在集群(例如川抡,配置變化事件)中傳播狀態(tài)變化(傳播集群中的狀態(tài)變化或事件, 以觸發(fā)后續(xù)的處理, 比如用來動態(tài)刷新配置等)可與Spring Cloud Config聯(lián)合實現(xiàn)熱部署崖堤。
5侍咱、Spring Cloud Stream: 數(shù)據(jù)流操作開發(fā)包,通過 Redis密幔、 Rabbit 或者 Kafka 實現(xiàn)的消費微服務楔脯, 可以通過簡單的聲明式模型來發(fā)送和接收消息。
6胯甩、Spring Cloud Sleuth: 日志收集工具包昧廷,封裝了Dapper,Zipkin和HTrace操作。
7偎箫、Spring Cloud Sleuth: Spring Cloud 應用的分布式跟蹤實現(xiàn)木柬, 可以完美整合 ZipKin。
8淹办、Spring Cloud Security: 安全工具包眉枕,為應用程序添加安全控制,主要提供在 Zuul 代理中對 0Auth2 客戶端請求的中繼器怜森。
9速挑、Spring Cloud Foundry: 通過Oauth2協(xié)議綁定服務到CloudFoundry,CloudFoundry是VMware推出的開源PaaS云平臺副硅。
Spring Cloud Data Flow:大數(shù)據(jù)操作工具姥宝,通過命令行方式操作數(shù)據(jù)流。
Spring Cloud AWS: 用千簡化整合 Amazon Web Service 的組件恐疲。
Spring Cloud CLI:基于 Spring Boot CLI腊满,可以讓你以命令行方式快速建立云組件。