Spring Cloud 系列之一:Spring Cloud 介紹
隨著 Spring 生態(tài)圈的不斷發(fā)展與完善梅肤,Spring Cloud 現(xiàn)在已經(jīng)完全是企業(yè)級(jí)微服務(wù)架構(gòu)的集大成者司蔬,云計(jì)算行業(yè)的最佳實(shí)踐,提及服微服姨蝴,必然會(huì)提到的一個(gè)框架(組)俊啼。如果你想從頭開(kāi)始一個(gè)微服務(wù)云應(yīng)用,想擁有一整套完整的實(shí)施方案似扔,那么吨些,就目前看來(lái),Spring Boot + Spring Cloud 是最佳(甚至可以說(shuō)是唯一)的選擇炒辉。另一個(gè)國(guó)內(nèi)用得比較多的微服務(wù)框架模型是來(lái)自 Alibaba 開(kāi)源的 dubbo 豪墅,但相比完整的 Spring boot + cloud 生態(tài)圈來(lái)說(shuō),dubbo 在生態(tài)上還不是很完善黔寇,需要有很多的自定制偶器,需要有較高的定制能力。
在官方的介紹中缝裤,Spring Cloud 是這樣的:
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer's own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.
從它的介紹中我們也可以看出屏轰,整個(gè)架構(gòu)生態(tài)包含了幾乎微服務(wù)和云服務(wù)的各個(gè)方面,從應(yīng)用到監(jiān)控憋飞,從LB到容災(zāi)霎苗。整體架構(gòu)包含了大大小小十幾個(gè)主要的子項(xiàng)目,幾乎和所有的知名第三方云平臺(tái)都有適配合作榛做,其中 Netflix 系列也對(duì) Spring Cloud 生態(tài)圈作了很好的擴(kuò)展與融合唁盏。以下是主要的子項(xiàng)目及其介紹:
Spring Cloud Config
配置管理工具包,讓你可以把配置放到遠(yuǎn)程服務(wù)器检眯,集中化管理集群配置厘擂,目前支持本地存儲(chǔ)、Git以及Subversion锰瘸。
Spring Cloud Bus
事件刽严、消息總線,用于在集群(例如避凝,配置變化事件)中傳播狀態(tài)變化舞萄,可與Spring Cloud Config聯(lián)合實(shí)現(xiàn)熱部署。
Eureka(來(lái)自 Netflix)
云端服務(wù)發(fā)現(xiàn)恕曲,一個(gè)基于 REST 的服務(wù)鹏氧,用于定位服務(wù),以實(shí)現(xiàn)云端中間層服務(wù)發(fā)現(xiàn)和故障轉(zhuǎn)移佩谣。
Hystrix(來(lái)自 Netflix)
熔斷器,容錯(cuò)管理工具实蓬,旨在通過(guò)熔斷機(jī)制控制服務(wù)和第三方庫(kù)的節(jié)點(diǎn),從而對(duì)延遲和故障提供更強(qiáng)大的容錯(cuò)能力茸俭。
Zuul(來(lái)自 Netflix)
Zuul 是在云平臺(tái)上提供動(dòng)態(tài)路由吊履,監(jiān)控,彈性调鬓,安全等邊緣服務(wù)的框架艇炎。Zuul 相當(dāng)于是設(shè)備和 Netflix 流應(yīng)用的 Web 網(wǎng)站后端所有請(qǐng)求的前門(mén)。
Archaius(來(lái)自 Netflix)
配置管理API腾窝,包含一系列配置管理API缀踪,提供動(dòng)態(tài)類(lèi)型化屬性、線程安全配置操作虹脯、輪詢框架驴娃、回調(diào)機(jī)制等功能。
Consul(來(lái)自HashiCorp)
封裝了Consul操作循集,consul是一個(gè)服務(wù)發(fā)現(xiàn)與配置工具唇敞,與Docker容器可以無(wú)縫集成。
Spring Cloud for Cloud Foundry(來(lái)自Pivotal)
通過(guò)Oauth2協(xié)議綁定服務(wù)到CloudFoundry咒彤,CloudFoundry是VMware推出的開(kāi)源PaaS云平臺(tái)疆柔。
Spring Cloud Sleuth
日志收集工具包,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操作镶柱,為SpringCloud應(yīng)用實(shí)現(xiàn)了一種分布式追蹤解決方案旷档。
Spring Cloud Data Flow(來(lái)自Pivotal)
大數(shù)據(jù)操作工具,作為Spring XD的替代產(chǎn)品歇拆,它是一個(gè)混合計(jì)算模型鞋屈,結(jié)合了流數(shù)據(jù)與批量數(shù)據(jù)的處理方式。
Spring Cloud Security
基于spring security的安全工具包查吊,為你的應(yīng)用程序添加安全控制谐区。
Spring Cloud Zookeeper
操作Zookeeper的工具包,用于使用zookeeper方式的服務(wù)發(fā)現(xiàn)和配置管理逻卖。
Spring Cloud Stream
數(shù)據(jù)流操作開(kāi)發(fā)包宋列,封裝了與Redis,Rabbit、Kafka等發(fā)送接收消息评也。
Spring Cloud CLI
基于 Spring Boot CLI炼杖,可以讓你以命令行方式快速建立云組件。
Ribbon(來(lái)自 Netflix)
提供云端負(fù)載均衡盗迟,有多種負(fù)載均衡策略可供選擇腻菇,可配合服務(wù)發(fā)現(xiàn)和斷路器使用。
Turbine(來(lái)自 Netflix)
Turbine是聚合服務(wù)器發(fā)送事件流數(shù)據(jù)的一個(gè)工具粗梭,用來(lái)監(jiān)控集群下hystrix的metrics情況盾碗。
Feign(來(lái)自O(shè)penFeign)
Feign是一種聲明式、模板化的HTTP客戶端。
Spring Cloud Task
提供云端計(jì)劃任務(wù)管理黔衡、任務(wù)調(diào)度蚓聘。
Spring Cloud Connectors
便于云端應(yīng)用程序在各種PaaS平臺(tái)連接到后端,如:數(shù)據(jù)庫(kù)和消息代理服務(wù)盟劫。
Spring Cloud Cluster
提供Leadership選舉夜牡,如:Zookeeper, Redis, Hazelcast, Consul等常見(jiàn)狀態(tài)模式的抽象和實(shí)現(xiàn)。
Spring Cloud Starters(來(lái)自Pivotal)
Spring Boot式的啟動(dòng)項(xiàng)目侣签,為Spring Cloud提供開(kāi)箱即用的依賴(lài)管理塘装。