自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SpringCloud 專欄:快速入門指南!

開發(fā) 架構(gòu)
Netflix 是一家技術(shù)實(shí)力雄厚的美國流媒體娛樂公司,主要通過互聯(lián)網(wǎng)向全球觀眾提供電影、電視劇、紀(jì)錄片、動畫片等在線視頻服務(wù),類似于國內(nèi)的騰訊視頻,全球范圍內(nèi)擁有超過 2 億的訂閱用戶。

一、背景介紹

在微服務(wù)架構(gòu)日益盛行的今天,Spring Cloud 憑借其豐富的功能集、高度的可集成性和對微服務(wù)架構(gòu)的天然支持,自推出以來,就受到軟件開發(fā)者的熱烈追棒和廣泛應(yīng)用。

使用過 Spring Cloud 的同學(xué)應(yīng)該深有感觸。Spring Cloud 是一個功能強(qiáng)大的微服務(wù)框架,它提供了一套完整的分布式系統(tǒng)解決方案,比如配置管理、服務(wù)治理、熔斷機(jī)制、智能路由、微代理、控制總線等多種功能,可以幫助開發(fā)者快速構(gòu)建和管理微服務(wù)應(yīng)用。無論是大型企業(yè)還是初創(chuàng)公司,都可以以非常低的成本搭建一套高效、分布式、容錯的云平臺。

當(dāng)項(xiàng)目引入 Spring Cloud 技術(shù)之后,一個接口的請求流程可以用如下圖來簡要描述。

圖片

從圖中可以看出,與單體應(yīng)用相比,微服務(wù)的接口調(diào)用鏈路和服務(wù)部署方式要復(fù)雜許多。

二、技術(shù)體系

Spring Cloud 的核心技術(shù)體系,可以用如下圖來簡要概括。

圖片

在介紹 Spring Cloud 核心組件之前,我們先簡單的介紹一下 Netflix 這家公司,因?yàn)樯蠄D提到的很多核心組件都來自于這家公司。

Netflix 是一家技術(shù)實(shí)力雄厚的美國流媒體娛樂公司,主要通過互聯(lián)網(wǎng)向全球觀眾提供電影、電視劇、紀(jì)錄片、動畫片等在線視頻服務(wù),類似于國內(nèi)的騰訊視頻,全球范圍內(nèi)擁有超過 2 億的訂閱用戶。

如果要滿足這么龐大的用戶群體在線訪問網(wǎng)站視頻內(nèi)容,常規(guī)的網(wǎng)站架構(gòu)肯定是無法承載的,為了更好的滿足海量用戶的在線視頻服務(wù),Netflix 在微服務(wù)架構(gòu)方面有著深入的研究和實(shí)踐,并開源了一系列組件。如上文提到的 Eureka、Ribbon、Hystrix、Feign、Zuul 等組件,就是 Netflix OSS 開源項(xiàng)目的一部分。由于其優(yōu)秀的微服務(wù)架構(gòu)實(shí)踐和服務(wù)特性,Spring Cloud 將其集成到自己的生態(tài)圈,并組成微服務(wù)的核心。

2.1、第一代 Spring Cloud

初代的 Spring Cloud 核心成員,可以用如下表來概括。

組件

來源

說明

spring-cloud-eureka

來源于Netflix Eureka

服務(wù)注冊中心組件

spring-cloud-ribbon

來源于Netflix Ribbon

服務(wù)負(fù)載均衡組件

Spring-cloud-hystrix

來源于Netflix Hystrix

服務(wù)熔斷器組件

Spring-cloud-feign

來源于Netflix Feign

服務(wù)遠(yuǎn)程調(diào)用組件

Spring-cloud-zuul

來源于Netflix Zuul

服務(wù)網(wǎng)關(guān)組件

Spring-cloud-config

自研

服務(wù)配置中心組件

Spring-cloud-bus

自研

服務(wù)消息總線

Spring-cloud-sleuth

自研

服務(wù)日志跟蹤

Spring-cloud-zikpin

來自第三方

服務(wù)日志全鏈路監(jiān)控

在此,只列舉了一些常用的核心組件,實(shí)際上 Spring Cloud 生態(tài)圈的核心組件非常的多,比如 Spring Cloud Security、Spring Cloud Data Flow、Spring Cloud Stream、Spring Cloud Task、Spring Cloud Connectors、Spring Cloud CLI 等等,每個組件都有它獨(dú)特的技能,再次就不一一介紹了,有興趣的朋友可以訪問 Spring Cloud 的官網(wǎng)介紹。

2.1、第二代 Spring Cloud

在 2018 年,由于 Netflix 對 Eureka,Hystrix 等組件不再繼續(xù)開發(fā)和維護(hù)了, 因此 Spring Cloud 不斷的引入了其它的開源組件,以此來壯大自己的生態(tài)圈,同時也陸續(xù)推出了自己的一些組件。

Spring Cloud 第一代和第二代的核心組件差異匯總,如下表所示。

核心組件

第一代 Spring Cloud

第二代 Spring Cloud

服務(wù)注冊中心

Eureka, Consul

Nacos

服務(wù)負(fù)載均衡

Ribbon

spring-cloud-loadbalancer

服務(wù)熔斷器

Hystrix

Resilience4j,Sentinel

服務(wù)遠(yuǎn)程調(diào)用

Feign

Spring Cloud OpenFeign,基于 Feign 的升級版

服務(wù)網(wǎng)關(guān)

Zuul

Spring Cloud Gateway

配置中心

Spring Cloud Config

Nacos,Apollo

服務(wù)日志全鏈路監(jiān)控

zipkin

Skywalking

因?yàn)?Zuul 1.x 性能一般,雖然 Netflix 之后也推出了 Zuul 2.x,相比第一代性能也提升了不少,但當(dāng)時一直跳票(延遲對外開放)。隨后 Spring Cloud 官方推出了自研的 Spring Cloud gateway,類似自研的還有 spring-cloud-loadbalancer,spring-cloud-r4j,Spring-cloud-openfeign 等,相比初代組件,性能和維護(hù)方面都有明顯的提升。

三、版本選擇

如果你翻看過 Spring Cloud 項(xiàng)目源碼,你會發(fā)現(xiàn)它其實(shí)是一個擁有諸多子項(xiàng)目的大型綜合項(xiàng)目,同時每個子項(xiàng)目也都維護(hù)著自己的發(fā)布版本號。這就意味著,每一個 Spring Cloud 的版本都會包含不同的子項(xiàng)目版本。

為了更好的管理子項(xiàng)目版本號,避免主版本名與子項(xiàng)目的發(fā)布版本號出現(xiàn)混亂。Spring Cloud 沒有采用版本號的方式來命令,而是通過名稱的方式來命令。

通常情況下,Spring Cloud 對外發(fā)行的版本號,采用的是倫敦地鐵站的名字來命令,根據(jù)字母表的順序來進(jìn)行排序,比如:第一個 Release 版本:Angel,第二個 Release 版本:Brixton,以此類推……

每個大版本也有多個小版本號,比如Angel.SR5Brixton.SR6,其中SR5、SR6就是小版本號。

小版本號的名稱命令也有講究,當(dāng)一個大版本的 Spring Cloud 項(xiàng)目發(fā)布內(nèi)容積累到臨界點(diǎn)或者一個嚴(yán)重 bug 解決可用后,就會發(fā)布一個“service releases”版本,簡稱SRX版本,其中X是一個遞增數(shù)字。

Spring Cloud 的版本號與每個子項(xiàng)目的版本號之間的關(guān)系,可以用如下表簡要概括。

組件

Angel.SR6

Brixton.SR5

依次類推

spring-cloud-aws

1.0.4.RELEASE

1.1.1.RELEASE

...

spring-cloud-bus

1.0.3.RELEASE

1.1.1.RELEASE

...

spring-cloud-cli

1.0.6.RELEASE

1.1.5.RELEASE

...

spring-cloud-commons

1.0.5.RELEASE

1.1.1.RELEASE

...

spring-cloud-config

1.0.4.RELEASE

1.1.3.RELEASE

...

spring-cloud-netflix

1.0.7.RELEASE

1.1.5.RELEASE

...

spring-cloud-security

1.0.3.RELEASE

1.1.2.RELEASE

...

spring-cloud-starters

1.0.6.RELEASE


...

spring-cloud-cloudfoundry


1.0.0.RELEASE

...

spring-cloud-cluster


1.0.1.RELEASE

...

spring-cloud-consul


1.0.2.RELEASE

...

spring-cloud-sleuth


1.0.6.RELEASE

...

spring-cloud-stream


1.0.2.RELEASE

...

spring-cloud-zookeeper


1.0.2.RELEASE

...

spring-boot

1.2.8.RELEASE

1.3.7.RELEASE

...

spring-cloud-task


1.0.2.RELEASE

...

Spring Cloud 的發(fā)展勢頭非常迅猛,截止目前,大版本號已經(jīng)到Leyton了。盡管如此,對于初學(xué)者而言,了解版本號的定義非常重要,避免后續(xù)在基于 Spring Cloud 框架來開發(fā)的時候走彎路。

由于 Spring Cloud 子項(xiàng)目特別多,尤其是在現(xiàn)有 Spring Boot 基礎(chǔ)上集成的時候,很容易因?yàn)榘姹咎柌煌霈F(xiàn)各種不兼容現(xiàn)象,以下是 Spring Cloud 與 Spring Boot 版本匹配關(guān)系。

Spring Cloud

Spring Boot

Angel

兼容Spring Boot 1.2.x

Brixton

兼容Spring Boot 1.3.x,Spring Boot 1.4.x

Camden

兼容Spring Boot 1.4.x,Spring Boot 1.5.x

Dalston

兼容Spring Boot 1.5.x

Edgware

兼容Spring Boot 1.5.x

Finchley

兼容Spring Boot 2.0.x

Greenwich

兼容Spring Boot 2.1.x

Hoxton

兼容Spring Boot 2.2.x,Spring Boot 2.3.x

Ilford

兼容Spring Boot 2.4.x,Spring Boot 2.5.x

Jubilee

兼容Spring Boot 2.6.x,Spring Boot 2.7.x

Kilburn

兼容Spring Boot 3.0.x,Spring Boot 3.1.x

Leyton

兼容Spring Boot 3.2.x,Spring Boot 3.3.x

在實(shí)際的微服務(wù)開發(fā)過程中,當(dāng)代碼編寫一切都是正常的,但是運(yùn)行時各種出錯,大概率應(yīng)該是版本號的選擇上出了問題。推薦結(jié)合當(dāng)前使用的 Spring Boot 版本,采用與 Spring Cloud 匹配的穩(wěn)定版本號來開發(fā),會省去不少的麻煩。

四、小結(jié)

最后總結(jié)一下,Spring、Spring Boot、Spring Cloud 這三者之間的關(guān)系。

Spring -> Spring Boot -> Spring Cloud

關(guān)于 Spring Boot,在之前的技術(shù)系列文章中我們有所介紹過, 它是一個基于 Spring 框架實(shí)現(xiàn)的應(yīng)用程序快速開發(fā)工具,開發(fā)者可以使用它來快速的構(gòu)建一個可獨(dú)立運(yùn)行的 Java 應(yīng)用程序,開箱即用。

對于 Spring Cloud,它是一個基于 Spring Boot 實(shí)現(xiàn)的云應(yīng)用開發(fā)工具,通過它可以快速搭建微服務(wù)架構(gòu)項(xiàng)目,比如配置管理、服務(wù)治理、熔斷機(jī)制、智能路由、微代理、控制總線等多種功能,開發(fā)者可以以非常低的成本搭建一套高效、分布式、容錯的云平臺。

因此可見,Spring Cloud 離不開 Spring Boot,兩者屬于依賴關(guān)系。

在之前的技術(shù)系列文章中,我們有詳細(xì)的介紹過 Spring Boot 相關(guān)知識,本期將開啟 Spring Cloud 技術(shù)系列相關(guān)知識介紹。

五、參考

1.https://www.didispace.com/spring-cloud/springcloud-version.html

2.http://www.ityouknow.com/springcloud/2017/05/01/simple-springcloud.html

責(zé)任編輯:武曉燕 來源: 潘志的技術(shù)筆記
相關(guān)推薦

2011-03-08 16:50:35

2021-03-02 06:32:03

Ansible系統(tǒng)運(yùn)維

2019-11-13 15:44:17

Kafka架構(gòu)數(shù)據(jù)

2020-11-25 19:05:50

云計(jì)算SaaS公有云

2021-03-01 13:00:21

Ansible系統(tǒng)運(yùn)維

2024-08-27 09:09:49

Web系統(tǒng)JSP

2010-12-23 13:45:23

Office 2010批量激活

2020-11-13 05:49:09

物聯(lián)網(wǎng)城域網(wǎng)IOT

2021-02-22 18:50:03

Ansible系統(tǒng)運(yùn)維

2023-12-19 09:36:35

PostgreSQL數(shù)據(jù)庫開源

2022-10-28 18:36:18

2020-05-11 09:54:33

JavaScript開發(fā)技術(shù)

2009-09-22 13:01:04

ibmdwBPM

2011-03-08 09:22:37

2010-08-03 15:19:08

FlexBuilder

2011-05-18 15:15:44

MySQL

2021-03-26 10:31:19

人工智能AIOps

2015-10-29 15:36:19

Redis入門

2023-09-26 15:50:21

2010-07-20 16:13:25

Perl線程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號