1. 程式人生 > >一:Spring Cloud 之簡介

一:Spring Cloud 之簡介

目錄

1. 簡介

  • 此篇開始進入Spring Cloud的學習理解之路,核心是以demo的方式記錄Spring Cloud的基礎用法。
  • 此篇是對Spring Cloud的整體的理解
  • 結合GitHub上專案來記錄,每篇會跟GitHub的地址
  • 每篇部落格會記錄一個點,並且向GitHub上提交一次,旨在可以直接切換到指定的一次提交時,程式碼與部落格中完全一致。而不是看第一篇文章時,demo卻已包含了其他很多功能驗證實現。

2. Spring Cloud是什麼

Spring Cloud 是一個基於Spring boot,用於快速構建分散式系統的通用模式的工具集。 為微服務架構中涉及的配置管理、服務治理、限流熔斷、智慧路由、API閘道器、控制匯流排、全域性鎖、分散式會話、呼叫鏈監控、 叢集狀態管理等提供了一種簡單的開發方式。

3. 為什麼使用Spring Cloud

  • 提供了微服務架構涉及的各個方面的解決方案與技術實現,並且業界有實際實踐
  • 微服務架構集大成者,並且與各個子專案的相容有保證,自已實現的框架則需要進行大量的相容性測試。
  • Spring Cloud開發的應用非常適合在Docker或者PaaS(Cloud Foundry)上部署,又叫雲原生應用(Cloud Native Application),大大降低運維難度和成本
  • 可結合Docker實現快速釋出和持續交付。
  • 由Spring、Netflix、Pivotal共同演進,Spring Cloud會越來越完善
  • 社群活躍度高、文件豐富

4. Spring Cloud版本號理解

Spring Cloud的版本號命名方式與以往專案不同,並且每個大版本下的小版本號命名方式也同樣不同,理解版本號的命名方式與緣由對搞清Spring Cloud的演進和版本選擇很重要。

4.1 為什麼採用單詞做版本名稱

Spring Cloud包含的各個子專案都獨立的進行著內容的迭代與更新,各自維護自己的釋出版本號,每一個Spring Cloud的版本都包含了不同版本的子專案,為了管理每個版本的子專案清單,避免版本號與其子專案的版本號混淆,故沒有采用版本號的方式,而是採用版本名的方式。

4.2 版本命名方式

  • 版本名稱第一個單詞緣由:採用的倫敦地鐵站的名字,按照字母排序對應版本的時間順序。比如最早的RELEASE版本是 Angel,第二是Birxton……
  • 版本名稱中SR緣由:當一個Spring cloud 專案的釋出內容積累到臨界點或者一個嚴重的BUG解決可用後,就會發佈一個“service Release”版本, 簡稱SR(X)版本
  • 版本號:在SR(X)版本中,x是一個遞增數字,每次更新x會增加

5. Spring Cloud包含的子專案概覽

5.1 子專案概覽與版本相容

實際研發過程中會使用版本管理工具,藉助Spring Cloud封裝好的與大版本配套的包含所依賴的子專案依賴關係清單來統一版本,解決相容性問題,如使用maven管理專案依賴,則可以使用Spring Cloud的pom檔案來作為dependencyManagement入口檔案。

同時也可檢視Spring cloud與子專案相容性(以Spring cloud官網為準,傳送門):

Component Edgware.SR4 Finchley.SR1 Finchley.BUILD-SNAPSHOT
spring-cloud-aws 1.2.3.RELEASE 2.0.0.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-cloud-bus 1.3.3.RELEASE 2.0.0.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-cloud-cli 1.4.1.RELEASE 2.0.0.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-cloud-commons 1.3.4.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-contract 1.2.5.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-config 1.4.4.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-netflix 1.4.5.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-security 1.2.3.RELEASE 2.0.0.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-cloud-cloudfoundry 1.1.2.RELEASE 2.0.0.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-cloud-consul 1.3.4.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-sleuth 1.3.4.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-stream Ditmars.SR4 Elmhurst.SR1 Elmhurst.BUILD-SNAPSHOT
spring-cloud-zookeeper 1.2.2.RELEASE 2.0.0.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-boot 1.5.14.RELEASE 2.0.4.RELEASE 2.0.4.BUILD-SNAPSHOT
spring-cloud-task 1.2.3.RELEASE 2.0.0.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-cloud-vault 1.1.1.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-gateway 1.0.2.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-openfeign 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-function 1.0.0.RELEASE 1.0.0.RELEASE 1.0.1.BUILD-SNAPSHOT

5.2 子專案簡介

  • spring-cloud-aws:用於簡化整合 Amazon Web Service 的元件
  • spring-cloud-bus:事件、訊息匯流排,用於在叢集(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。
  • spring-cloud-cli:基於 Spring Boot CLI,可以讓你以命令列方式快速建立雲元件。
  • spring-cloud-contract:
  • spring-cloud-config:配置管理開發工具包,可以讓你把配置放到遠端伺服器,目前支援本地儲存、Git以及Subversion。
  • spring-cloud-netflix:針對多種Netflix元件提供的開發工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
    • Netflix Eureka:雲端負載均衡,一個基於 REST 的服務,用於定位服務,以實現雲端的負載均衡和中間層伺服器的故障轉移。
    • Netflix Hystrix:熔斷器,容錯管理工具,旨在通過熔斷機制控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。
    • Netflix Ribbon: 客戶端負載 均和的服務呼叫元件(客戶端負載)
    • Netflix Feign: 一種宣告式、模板化的HTTP客戶端
    • Netflix Zuul:邊緣服務工具,是提供動態路由,監控,彈性,安全等的邊緣服務。
    • Netflix Archaius:配置管理API,包含一系列配置管理API,提供動態型別化屬性、執行緒安全配置操作、輪詢框架、回撥機制等功能。
    • Netflix Turbine:聚合伺服器傳送事件流資料的一個工具,用來監控叢集下hystrix的metrics情況
  • spring-cloud-data-flow:大資料操作工具,通過命令列方式操作資料流。
  • spring-cloud-security:安全工具包,為你的應用程式新增安全控制,主要是指OAuth2。
  • spring-cloud-cloudfoundry:通過Oauth2協議繫結服務到CloudFoundry,CloudFoundry是VMware推出的開源PaaS雲平臺。
  • spring-cloud-consul:封裝了Consul操作,consul是一個服務發現與配置工具,與Docker容器可以無縫整合。
  • spring-cloud-sleuth:日誌收集工具包,封裝了Dapper,Zipkin和HTrace操作。
  • spring-cloud-stream:資料流操作開發包,封裝了與Redis,Rabbit、Kafka等傳送接收訊息。
  • spring-cloud-zookeeper:操作Zookeeper的工具包,用於使用zookeeper方式的服務註冊和發現。
  • spring-boot:快速開發框架,Spring Cloud的基礎
  • spring-cloud-task:提供雲端計劃任務管理、任務排程。
  • spring-cloud-openfeign:Feign是一種宣告式、模板化的HTTP客戶端。

相關推薦

Spring Cloud 簡介

目錄 1. 簡介 此篇開始進入Spring Cloud的學習理解之路,核心是以demo的方式記錄Spring Cloud的基礎用法。 此篇是對Spring Cloud的整體的理解 結合GitHub上專案來記錄,每篇會跟GitHub的地址 每篇部落

Spring Cloud 訊息匯流排-

1. 簡介 Spring Cloud Bus links the nodes of a distributed system with a lightweight message broker. This broker can then be used to

十三Spring Cloud Hystrix Dashboard

1. 簡介 Hystrix是Netflix解決自己業務不穩定性的一個限流容錯框架,可以幫助我們解決微服務架構體系中的限流、降級、熔斷等功能。提高系統穩定性,提供了完善的監控實現,並且Hystrix可

十四Spring Cloud Hystrix Dashboard結合Turbine

1. 簡介 Turbine (provided by the Spring Cloud Netflix project), aggregates multiple instances Hystrix

十五Spring Cloud Eureka服務註冊中心(HA版)

1. Eureka簡介 2. 程式碼實現 2.1涉及的模組 eureka-server-ha:通過profiles指定不同的埠來模擬多服務例項。 eureka-service:服務提供者 2.2

Spring Cloud()Spring Cloud簡述

  要了解Spring Cloud,先要對“微服務”這個概念有一定的瞭解。微服務這個名詞最早是由面向物件設計與分析專家Martin Fowler提出,他對微服務的理解如下:   簡而言之,微服務架構的風格,就是講單一程式開發成一個微服務,每個微服務執行在自己的程序當中,並使

Spring Cloud 服務發現與呼叫-Ribbon

1. 簡介 Ribbon is a client side load balancer which gives you a lot of control over the behaviour of HTTP and TCP clients. F

十二Spring Cloud 呼叫鏈監控-Sleuth

1. 簡介 Spring Cloud Sleuth implements a distributed tracing solution for Spring Cloud. 微服務的呼叫鏈監控是解

跟我學SpringCloud | 第二十章Spring Cloud okhttp

1. 什麼是 okhttp ? okhttp 是由 square 公司開源的一個 http 客戶端。在 Java 平臺上,Java 標準庫提供了 HttpURLConnection 類來支援 HTTP 通訊。不過 HttpURLConnection 本身的 API 不夠友好,所提供的功能也有限。大部分 Jav

Spring Cloud認知學習()Spring Cloud介紹與Eureka使用

[toc] -------- 這是一個Spring Cloud系列文章,它並不會講解所有的知識點,它只是基於微服務的場景來**逐步介紹**常見元件的作用和意義,以及場景元件的整合。對於每個元件的知識並不會講解太多,只講常見的,目的是儘可能快速的對Spring Cloud的常用元件有一個基礎的認知,有

Spring CloudZuul()編寫Zuul微服務閘道器

主題 編寫Zuul微服務閘道器 前言 閘道器的概念大家可以點選這裡瞭解,或者等待米兜好文章更新。本例項主要是將Zuul註冊到Eureka Server上,並做一些案例測試。 內容 1.新建專案 cloud-register-gateway-zuul微服務 2.引入依賴

Spring CloudGateway()基本瞭解及謂詞詳解

版本:2.0.2.RELEASE 連結:http://spring.io/projects/spring-cloud-gateway#overview 本章主要目錄如下 Spring Cloud Gateway是什麼? Spring Cloud Gateway特徵有什麼? S

Spring CloudSpring Boot小試

一、序言 Spring Cloud簡介   Spring Cloud 為開發人員提供了快速構建分散式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件匯流排、全域性鎖、決策競選、分散式會話等等。它執行環境簡單,可以在開發人員的電腦上跑。 Spring Boot

Spring Cloud客戶端負載平衡器Ribbon

highlight 情況下 upd block poll sla conf project 遠程服務 Ribbon是一個客戶端負載均衡器,它可以很好地控制HTTP和TCP客戶端的行為。Feign已經使用Ribbon,所以如果您使用@FeignClient,則本節也適用。

跟我學習Spring Cloud客戶端負載平衡器Ribbon

電子商務 springcloud spring cloud springcloud微服務 微服務雲架構 Ribbon是一個客戶端負載均衡器,它可以很好地控制HTTP和TCP客戶端的行為。Feign已經使用Ribbon,所以如果您使用@FeignClient,則本節也適用。Ribbon中的中

spring cloud架構整合-springcloud簡介

電子商務 雲服務 spring cloud 架構 互聯網 Spring Cloud是一系列框架的有序集合。利用Spring Boot的開發模式簡化了分布式系統基礎設施的開發,都可以用Spring Boot的開發風格做到一鍵啟動和部署。Spring Cloud將目前比較成熟、經得起實際考驗的

、服務治理Spring Cloud Eureka

rest app module ribbon service 分享 chl 自己的 註冊服務 核心內容: 構建服務註冊中心 服務註冊於服務發現 Eureka的基礎架構 Eureka的服務治理機制 Eureka的配置 服務治理:主要是用來實現各個微服務實例的自動化註冊與發

(十) 整合spring cloud雲架構 - SSO單點登錄OAuth2.0登錄流程(2)

src abc ear 技術支持 expires 簡單的 style min 參數 上一篇是站在巨人的肩膀上去研究OAuth2.0,也是為了快速幫助大家認識OAuth2.0,閑話少說,我根據框架中OAuth2.0的使用總結,畫了一個簡單的流程圖(根據用戶名+密碼實現OAut

Spring Cloud微服務實戰》讀書筆記客戶端負載均衡Spring Cloud Ribbon - 4

摘要 客戶端負載均衡元件部署在客戶端,由客戶端維護要訪問的服務端清單(清單來源於服務註冊中心)。在Spring Cloud 中預設使用Ribbon作為客戶端負載均衡。 關鍵詞:客戶端負載均衡,Ribbon 一、什麼是客戶端負載均衡 負載均衡是對系統高可用、緩解網路壓力、處理能力擴容的重要手段之一。通常

Java架構-(spring cloud微服務分散式雲架構 - Spring Cloud簡介

Spring Cloud是一系列框架的有序集合。利用Spring Boot的開發模式簡化了分散式系統基礎設施的開發,如服務發現、註冊、配置中心、訊息匯流排、負載均衡、斷路器、資料監控等(這裡只簡單的列了一部分),都可以用Spring Boot的開發風格做到一鍵啟動和部署。Spring C