SpringCloud 概述

SpringCloud 概述

1. 什麼是SpringCloud?

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,均可以用Spring Boot的開發風格作到一鍵啓動和部署。Spring並無重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,經過Spring Boot風格進行再封裝屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分佈式系統開發工具包spring

2. SpringCloud和SpringBoot的關係

SpringCloud是依賴於SpringBoot的一組框架集合,SpringCloud的開發是基於SpringBoot的,也就是說沒有SpringBoot就搭建不了SpringCloud,而SpringBoot被稱爲微服務中的單獨一種服務,因此SpringBoot是能夠單獨存在開發的數據庫

3. 爲何要用SpringCloud

總結一句話爲何springcloud在微服務領域那麼廣受歡迎的緣由,那就是springcloud的組件幾乎涵蓋了微服務開發中的方方面面,也就是說微服務所需的技術支持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

服務中心,服務發現,一個基於 REST 的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。這個但是springcloud服務中心後端

  • Netflix Hystrix

熔斷器,容錯管理工具,旨在經過熔斷機制控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。安全

  • Netflix Zuul

Zuul 是在雲平臺上提供動態路由,監控,彈性,安全等邊緣服務的框架。Zuul 至關因而設備和 Netflix 流應用的 Web 網站後端全部請求的網關服務。服務器

  • Netflix Archaius

配置管理API,包含一系列配置管理API,提供動態類型化屬性、線程安全配置操做、輪詢框架、回調機制等功能。能夠實現動態獲取配置, 原理是每隔60s(默認,可配置)從配置源讀取一次內容,這樣修改了配置文件後不須要重啓服務就可使修改後的內容生效,前提使用archaius的API來讀取。架構

  • Spring Cloud Config

俗稱的配置中心,配置管理工具包,讓你能夠把配置放到遠程服務器,集中化管理集羣配置,目前支持本地存儲、Git以及Subversion。app

  • Spring Cloud Bus

事件、消息總線,用於在集羣(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署服務之間消息傳遞。負載均衡

  • Spring Cloud for Cloud Foundry

Cloud Foundry是VMware推出的業界第一個開源PaaS雲平臺,它支持多種框架、語言、運行時環境、雲平臺及應用服務,使開發人員可以在幾秒鐘內進行應用程序的部署和擴展,無需擔憂任何基礎架構的問題其實就是與CloudFoundry進行集成的一套解決方案。框架

  • Spring Cloud Cluster

Spring Cloud Cluster將取代Spring Integration。提供在分佈式系統中的集羣所須要的基礎功能支持,如:選舉、集羣的狀態一致性、全局鎖、tokens等常見狀態模式的抽象和實現。Spring Cloud Cluster已經幫你提供了不少方便組織成統一的工具。

  • Spring Cloud Consul

Consul 是一個支持多數據中心分佈式高可用的服務發現和配置共享的服務軟件,由 HashiCorp 公司用 Go 語言開發, 基於 Mozilla Public License 2.0 的協議進行開源. Consul 支持健康檢查,並容許 HTTP 和 DNS 協議調用 API 存儲鍵值對。封裝了Consul操做,consul是一個服務發現與配置工具,與Docker容器能夠無縫集成。

  • Spring Cloud Security

基於spring security的安全工具包,爲你的應用程序添加安全控制。

  • Spring Cloud Sleuth

日誌收集工具包,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操做,爲SpringCloud應用實現了一種分佈式追蹤解決方案。

  • Spring Cloud Data Flow

Data flow 是一個用於開發和執行大範圍數據處理其模式包括ETL,批量運算和持續運算的統一編程模型和託管服務。對於在現代運行環境中可組合的微服務程序來講,Spring Cloud data flow是一個原生雲可編配的服務。使用Spring Cloud data flow,開發者能夠爲像數據抽取,實時分析,和數據導入/導出這種常見用例建立和編配數據通道 (data pipelines)。Spring Cloud data flow 是基於原生雲對 spring XD的從新設計,該項目目標是簡化大數據應用的開發。Spring XD 的流處理和批處理模塊的重構分別是基於 Spring Boot的stream 和 task/batch 的微服務程序。這些程序如今都是自動部署單元並且他們原生的支持像 Cloud Foundry、Apache YARN、Apache Mesos和Kubernetes 等現代運行環境。

  • Spring Cloud data flow 爲基於微服務的分佈式流處理和批處理數據通道提供了一系列模型和最佳實踐。
  • Spring Cloud Stream

Spring Cloud Stream是建立消息驅動微服務應用的框架。Spring Cloud Stream是基於Spring Boot建立,用來創建單獨的/工業級spring應用,使用spring integration提供與消息代理之間的鏈接。數據流操做開發包,封裝了與Redis,Rabbit、Kafka等發送接收消息。一個業務會牽扯到多個任務,任務之間是經過事件觸發的,這就是Spring Cloud stream要乾的事了

  • Spring Cloud Task

Spring Cloud Task 主要解決短命微服務的任務管理,任務調度的工做,好比說某些定時任務晚上就跑一次,或者某項數據分析臨時就跑幾回。

  • Spring Cloud Zookeeper

ZooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。操做Zookeeper的工具包,用於使用zookeeper方式的服務發現和配置管理。

  • Spring Cloud Connectors

Spring Cloud Connectors 簡化了鏈接到服務的過程和從雲平臺獲取操做的過程,有很強的擴展性,能夠利用Spring Cloud Connectors來構建你本身的雲平臺。便於雲端應用程序在各類PaaS平臺鏈接到後端,如:數據庫和消息代理服務。

  • Spring Cloud Starters

Spring Boot式的啓動項目,爲Spring Cloud提供開箱即用的依賴管理。

  • Spring Cloud CLI

基於 Spring Boot CLI,可讓你以命令行方式快速創建雲組件。

5. SpringCloud 資源

相關文章
相關標籤/搜索