SpringCloud 概述

SpringCloud 概述

1. 什么是SpringCloud?

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(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ā)者留出了一套簡單易懂、易部署和易維護(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ù)和第三方庫的節(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ù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 語言開發(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)是簡化大數(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ù),將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。操作Zookeeper的工具包,用于使用zookeeper方式的服務(wù)發(fā)現(xiàn)和配置管理。

  • Spring Cloud Connectors

Spring Cloud Connectors 簡化了連接到服務(wù)的過程和從云平臺(tái)獲取操作的過程,有很強(qiáng)的擴(kuò)展性,可以利用Spring Cloud Connectors來構(gòu)建你自己的云平臺(tái)。便于云端應(yīng)用程序在各種PaaS平臺(tái)連接到后端,如:數(shù)據(jù)庫和消息代理服務(wù)。

  • Spring Cloud Starters

Spring Boot式的啟動(dòng)項(xiàng)目,為Spring Cloud提供開箱即用的依賴管理。

  • Spring Cloud CLI

基于 Spring Boot CLI,可以讓你以命令行方式快速建立云組件。

5. SpringCloud 資源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容