SpringCloud 概述
1. 什么是SpringCloud?
Spring Cloud是一系列框架的有序集合罩润。它利用Spring Boot的開發(fā)便利性巧妙地簡(jiǎn)化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā)疟呐,如服務(wù)發(fā)現(xiàn)注冊(cè)脚曾、配置中心、消息總線启具、負(fù)載均衡本讥、斷路器、數(shù)據(jù)監(jiān)控等鲁冯,都可以用Spring Boot的開發(fā)風(fēng)格做到一鍵啟動(dòng)和部署拷沸。Spring并沒有重復(fù)制造輪子,它只是將目前各家公司開發(fā)的比較成熟薯演、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來撞芍,通過Spring Boot風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,最終給開發(fā)者留出了一套簡(jiǎn)單易懂跨扮、易部署和易維護(hù)的分布式系統(tǒng)開發(fā)工具包
2. SpringCloud和SpringBoot的關(guān)系
SpringCloud是依賴于SpringBoot的一組框架集合序无,SpringCloud的開發(fā)是基于SpringBoot的,也就是說沒有SpringBoot就搭建不了SpringCloud衡创,而SpringBoot被稱為微服務(wù)中的單獨(dú)一種服務(wù)帝嗡,所以SpringBoot是可以單獨(dú)存在開發(fā)的
3. 為什么要用SpringCloud
總結(jié)一句話為什么springcloud在微服務(wù)領(lǐng)域那么廣受歡迎的原因,那就是springcloud的組件幾乎涵蓋了微服務(wù)開發(fā)中的方方面面璃氢,也就是說微服務(wù)所需的技術(shù)支持springcloud的組件都能提供,SpringCloud是以整套解決方案哟玷。
4. SpringCloud全家桶介紹
Spring Cloud組件
- Spring Cloud Config
- Spring Cloud Netflix(Eureka、Hystrix一也、Zuul巢寡、Archaius…)
- Spring Cloud Bus
- Spring Cloud for Cloud Foundry
- Spring Cloud Cluster
- Spring Cloud Consul
- Spring Cloud Security
- Spring Cloud Sleuth
- Spring Cloud Data Flow
- Spring Cloud Stream
- Spring Cloud Task
- Spring Cloud Zookeeper
- Spring Cloud Connectors
- Spring Cloud Starters
- Spring Cloud CLI
核心組件
- Netflix Eureka
服務(wù)中心,服務(wù)發(fā)現(xiàn)椰苟,一個(gè)基于 REST 的服務(wù)抑月,用于定位服務(wù),以實(shí)現(xiàn)云端中間層服務(wù)發(fā)現(xiàn)和故障轉(zhuǎn)移尊剔。這個(gè)可是springcloud服務(wù)中心
- Netflix Hystrix
熔斷器爪幻,容錯(cuò)管理工具,旨在通過熔斷機(jī)制控制服務(wù)和第三方庫(kù)的節(jié)點(diǎn),從而對(duì)延遲和故障提供更強(qiáng)大的容錯(cuò)能力须误。
- Netflix Zuul
Zuul 是在云平臺(tái)上提供動(dòng)態(tài)路由,監(jiān)控,彈性,安全等邊緣服務(wù)的框架挨稿。Zuul 相當(dāng)于是設(shè)備和 Netflix 流應(yīng)用的 Web 網(wǎng)站后端所有請(qǐng)求的網(wǎng)關(guān)服務(wù)。
- Netflix Archaius
配置管理API京痢,包含一系列配置管理API奶甘,提供動(dòng)態(tài)類型化屬性、線程安全配置操作祭椰、輪詢框架臭家、回調(diào)機(jī)制等功能疲陕《ち蓿可以實(shí)現(xiàn)動(dòng)態(tài)獲取配置, 原理是每隔60s(默認(rèn)诅岩,可配置)從配置源讀取一次內(nèi)容吩谦,這樣修改了配置文件后不需要重啟服務(wù)就可以使修改后的內(nèi)容生效,前提使用archaius的API來讀取式廷。
- Spring Cloud Config
俗稱的配置中心滑废,配置管理工具包袜爪,讓你可以把配置放到遠(yuǎn)程服務(wù)器,集中化管理集群配置饿敲,目前支持本地存儲(chǔ)怀各、Git以及Subversion瓢对。
- Spring Cloud Bus
事件、消息總線硕蛹,用于在集群(例如法焰,配置變化事件)中傳播狀態(tài)變化倔毙,可與Spring Cloud Config聯(lián)合實(shí)現(xiàn)熱部署服務(wù)之間消息傳遞陕赃。
- Spring Cloud for Cloud Foundry
Cloud Foundry是VMware推出的業(yè)界第一個(gè)開源PaaS云平臺(tái)颁股,它支持多種框架甘有、語(yǔ)言葡缰、運(yùn)行時(shí)環(huán)境、云平臺(tái)及應(yīng)用服務(wù)幌氮,使開發(fā)人員能夠在幾秒鐘內(nèi)進(jìn)行應(yīng)用程序的部署和擴(kuò)展胁澳,無需擔(dān)心任何基礎(chǔ)架構(gòu)的問題其實(shí)就是與CloudFoundry進(jìn)行集成的一套解決方案韭畸。
- Spring Cloud Cluster
Spring Cloud Cluster將取代Spring Integration。提供在分布式系統(tǒng)中的集群所需要的基礎(chǔ)功能支持随橘,如:選舉锦庸、集群的狀態(tài)一致性、全局鎖萝嘁、tokens等常見狀態(tài)模式的抽象和實(shí)現(xiàn)牙言。Spring Cloud Cluster已經(jīng)幫你提供了很多方便組織成統(tǒng)一的工具怪得。
- Spring Cloud Consul
Consul 是一個(gè)支持多數(shù)據(jù)中心分布式高可用的服務(wù)發(fā)現(xiàn)和配置共享的服務(wù)軟件,由 HashiCorp 公司用 Go 語(yǔ)言開發(fā), 基于 Mozilla Public License 2.0 的協(xié)議進(jìn)行開源. Consul 支持健康檢查,并允許 HTTP 和 DNS 協(xié)議調(diào)用 API 存儲(chǔ)鍵值對(duì)徒恋。封裝了Consul操作,consul是一個(gè)服務(wù)發(fā)現(xiàn)與配置工具基括,與Docker容器可以無縫集成风皿。
- Spring Cloud Security
基于spring security的安全工具包河爹,為你的應(yīng)用程序添加安全控制咸这。
- Spring Cloud Sleuth
日志收集工具包媳维,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操作遏暴,為SpringCloud應(yīng)用實(shí)現(xiàn)了一種分布式追蹤解決方案。
- Spring Cloud Data Flow
Data flow 是一個(gè)用于開發(fā)和執(zhí)行大范圍數(shù)據(jù)處理其模式包括ETL州丹,批量運(yùn)算和持續(xù)運(yùn)算的統(tǒng)一編程模型和托管服務(wù)杂彭。對(duì)于在現(xiàn)代運(yùn)行環(huán)境中可組合的微服務(wù)程序來說,Spring Cloud data flow是一個(gè)原生云可編配的服務(wù)所计。使用Spring Cloud data flow团秽,開發(fā)者可以為像數(shù)據(jù)抽取,實(shí)時(shí)分析讥裤,和數(shù)據(jù)導(dǎo)入/導(dǎo)出這種常見用例創(chuàng)建和編配數(shù)據(jù)通道 (data pipelines)。Spring Cloud data flow 是基于原生云對(duì) spring XD的重新設(shè)計(jì)间螟,該項(xiàng)目目標(biāo)是簡(jiǎn)化大數(shù)據(jù)應(yīng)用的開發(fā)厢破。Spring XD 的流處理和批處理模塊的重構(gòu)分別是基于 Spring Boot的stream 和 task/batch 的微服務(wù)程序。這些程序現(xiàn)在都是自動(dòng)部署單元而且他們?cè)闹С窒?Cloud Foundry笆焰、Apache YARN嚷掠、Apache Mesos和Kubernetes 等現(xiàn)代運(yùn)行環(huán)境。
- Spring Cloud data flow 為基于微服務(wù)的分布式流處理和批處理數(shù)據(jù)通道提供了一系列模型和最佳實(shí)踐不皆。
- Spring Cloud Stream
Spring Cloud Stream是創(chuàng)建消息驅(qū)動(dòng)微服務(wù)應(yīng)用的框架能犯。Spring Cloud Stream是基于Spring Boot創(chuàng)建踩晶,用來建立單獨(dú)的/工業(yè)級(jí)spring應(yīng)用渡蜻,使用spring integration提供與消息代理之間的連接晴楔。數(shù)據(jù)流操作開發(fā)包税弃,封裝了與Redis,Rabbit凑队、Kafka等發(fā)送接收消息。一個(gè)業(yè)務(wù)會(huì)牽扯到多個(gè)任務(wù)西壮,任務(wù)之間是通過事件觸發(fā)的叫惊,這就是Spring Cloud stream要干的事了
- Spring Cloud Task
Spring Cloud Task 主要解決短命微服務(wù)的任務(wù)管理霍狰,任務(wù)調(diào)度的工作袋毙,比如說某些定時(shí)任務(wù)晚上就跑一次,或者某項(xiàng)數(shù)據(jù)分析臨時(shí)就跑幾次宾濒。
- Spring Cloud Zookeeper
ZooKeeper是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù)橘忱,是Google的Chubby一個(gè)開源的實(shí)現(xiàn)鹦付,是Hadoop和Hbase的重要組件敲长。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)泽铛、域名服務(wù)盔腔、分布式同步月褥、組服務(wù)等。ZooKeeper的目標(biāo)就是封裝好復(fù)雜易出錯(cuò)的關(guān)鍵服務(wù)舀透,將簡(jiǎn)單易用的接口和性能高效愕够、功能穩(wěn)定的系統(tǒng)提供給用戶。操作Zookeeper的工具包佛猛,用于使用zookeeper方式的服務(wù)發(fā)現(xiàn)和配置管理惑芭。
- Spring Cloud Connectors
Spring Cloud Connectors 簡(jiǎn)化了連接到服務(wù)的過程和從云平臺(tái)獲取操作的過程,有很強(qiáng)的擴(kuò)展性继找,可以利用Spring Cloud Connectors來構(gòu)建你自己的云平臺(tái)遂跟。便于云端應(yīng)用程序在各種PaaS平臺(tái)連接到后端,如:數(shù)據(jù)庫(kù)和消息代理服務(wù)婴渡。
- Spring Cloud Starters
Spring Boot式的啟動(dòng)項(xiàng)目幻锁,為Spring Cloud提供開箱即用的依賴管理。
- Spring Cloud CLI
基于 Spring Boot CLI缩搅,可以讓你以命令行方式快速建立云組件。
5. SpringCloud 資源
- 官網(wǎng)地址:https://spring.io/projects/spring-cloud
- Spring Cloud中文網(wǎng)-官方文檔中文版:https://springcloud.cc/