溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

跟我學(xué)Spring Cloud(Finchley版)-01-開篇

發(fā)布時(shí)間:2020-04-24 15:12:01 來源:網(wǎng)絡(luò) 閱讀:492 作者:lilizhou2008 欄目:軟件技術(shù)

前言·課程簡介

最近挺多童鞋在公眾號(itmuch_com)上催更Spring Cloud系列教程,故有此系列。以下是幾點(diǎn)說明/規(guī)劃/答疑:

問:為什么基于Finchley,而非Greenwich?

:就目前而言,F(xiàn)inchley更貼近生產(chǎn),而Greenwich尚未發(fā)布——雖然已經(jīng)RC了,但有挺多不確定因素,例如:Resilience4j是否會(huì)在Greenwich版本中成功孵化(應(yīng)該是不會(huì))、spring-cloud-netflix-concurrency-limits 文檔一行都沒有等等(搞不好項(xiàng)目被直接干掉也不一定……)還有很多其它未確定的點(diǎn),導(dǎo)致筆者最終選擇使用Finchley作為博客基礎(chǔ)版本。未來,在Greenwich正式發(fā)布后,考慮升級到Greenwich,或者以番外的形式補(bǔ)充。

問:系列課程怎么規(guī)劃的?

:分為主線故事和番外。主線故事講Eureka、Ribbon、Feign、Hystrix、Zuul、Spring Cloud Config、Spring Cloud Gateway、Spring Cloud Sleuth、Spring Cloud Stream;番外講Spring Cloud Consul、Spring Cloud R4j、Nacos、Sentinel;另外講持續(xù)集成、持續(xù)發(fā)布、代碼質(zhì)量控制……暫時(shí)是這么規(guī)劃的。

問:我能從這套課程獲得什么?

:學(xué)習(xí)完,能比較深入了解Spring Cloud各組件的使用套路、能避過N多常見的坑(諸如Feign配置坑啦、Ribbon配置坑啦、父子上下文坑啦、狀態(tài)UNKONWN坑啦,你可能不知道我在說什么,沒關(guān)系,以后遇到了再來查文檔就行)、理解各組件的工作原理及組件之間的關(guān)系。

問:收費(fèi)嗎?

免費(fèi)。極客時(shí)間曾兩度找我約稿,我也確實(shí)考慮過收費(fèi)。錢是好東西,我不是圣人,不過還是放棄了,賺錢的方式有很多,開源是我熱愛的。我只要大家在提建議意見的時(shí)候別那么難聽/難看就知足了。(為什么這么說,大家可以回溯一下我當(dāng)初Spring Cloud開源視頻下面的評論。太TM難看了)

問:我該怎么學(xué)習(xí)這套教程呢?

:我會(huì)在你需要注意的文字上【加粗】,重要知識點(diǎn)標(biāo)記【重要】,在能拓展你視野的地方標(biāo)記【TIPS】,在坑或者需要重點(diǎn)關(guān)注的地方標(biāo)記【WARNING】;另外絕對不要忘記【拓展閱讀】——這將是是拓展你知識面、開拓技術(shù)視野的一個(gè)重要途徑。記住,永遠(yuǎn)別只去學(xué)習(xí)知識,知識是無窮無盡的,對于軟件,知識還可能會(huì)變……你應(yīng)該提升的是學(xué)習(xí)能力,并開拓技術(shù)視野。隨著微服務(wù)/Cloud Native的深入人心,未來必然是整合能力 > 單項(xiàng)技術(shù)能力。

問:更新頻率?不會(huì)太監(jiān)吧?

:目前已經(jīng)完稿21篇,每周規(guī)劃3更,但不固定周幾更新。至于是否太監(jiān),我只能盡量不,我不是專職寫開源文檔的……工作很忙,一般得十點(diǎn)才能到宿舍,開始自己的生活;不一般的時(shí)候,沒有生活??傊?,看的人越多,我也會(huì)越有激情??!

問:你TM自問自答跟個(gè)精神病一樣煩不煩?

:我TM年紀(jì)大了,廢話多點(diǎn)不可以嗎……

最后說一下,原創(chuàng)不易!如果課程對您有幫助,不要吝嗇,請點(diǎn)轉(zhuǎn)發(fā)!請喝咖啡就算了,咖啡讓我失眠^_^

讓我把廢話到此為止吧!Let’s roll!

Spring Cloud簡介

盡管Spring Cloud帶有“Cloud”的字樣,但它并不是云計(jì)算解決方案,而是在Spring Boot基礎(chǔ)上構(gòu)建的,用于快速構(gòu)建分布式系統(tǒng)的通用模式的工具集。

使用Spring Cloud開發(fā)的應(yīng)用程序非常適合在Docker或者PaaS(例如Cloud Foundry)上部署,所以又叫做云原生應(yīng)用(Cloud Native Application)。云原生(Cloud Native)可簡單理解為面向云環(huán)境的軟件架構(gòu)。說到云原生,就不得不提一下《十二要素應(yīng)用宣言(12-factor Apps)》,這是云原生架構(gòu)的方法論與最佳實(shí)踐。

拓展閱讀

  • 《Cloud Native Application》電子書:https://pivotal.io/platform-as-a-service/migrating-to-cloud-native-application-architectures-ebook
  • 《十二要素應(yīng)用宣言(12-factor Apps)》中文版:https://12factor.net/zh_cn/

核心功能

  • Distributed/versioned configuration 分布式/版本化的配置管理
  • Service registration and discovery 服務(wù)注冊于服務(wù)發(fā)現(xiàn)
  • Routing 路由
  • Service-to-service calls 端到端的調(diào)用
  • Load balancing 負(fù)載均衡
  • Circuit Breakers 斷路器
  • Global locks 全局鎖
  • Leadership election and cluster state 選舉與集群狀態(tài)管理
  • Distributed messaging 分布式消息

版本簡介

我們知道,大多數(shù)Spring項(xiàng)目都是以“主版本號.次版本號.增量版本號.里程碑版本號”的形式命名版本號的,例如Spring Framework穩(wěn)定版本4.3.5.RELEASE、里程碑版本5.0.0.M4等。其中,主版本號表示項(xiàng)目的重大重構(gòu);次版本號表示新特性的添加和變化;增量版本號一般表示bug修復(fù);里程碑版本號表示某版本號的里程碑。

然而,Spring Cloud并未使用這種方式管理版本。下面我們來詳細(xì)探討一下Spring Cloud的版本。

我們來看一下Spring Cloud的版本,如圖所示。

跟我學(xué)Spring Cloud(Finchley版)-01-開篇

由圖可知,Spring Cloud是以英文單詞 SRX 的形式命名版本號的。那么英文單詞和SR分別表示什么呢?

Spring Cloud是一個(gè)綜合項(xiàng)目,它包含很多的子項(xiàng)目。由于子項(xiàng)目也維護(hù)著自己的版本號,Spring Cloud采用了這種版本命名方式,從而避免與子項(xiàng)目的版本混淆。其中,英文單詞叫做“release train”,Angel、Brixton、Camden等都是倫敦地鐵站的名稱,它們按照字母順序發(fā)行,我們可將其理解為主版本的演進(jìn)。SR表示“Service Release”,一般表示Bug修復(fù);在SR版本發(fā)布之前,會(huì)先發(fā)布一個(gè)Release版本,例如Camden RELEASE。

經(jīng)過以上講解,相信大家就能很好地理解Spring Cloud的版本了。例如,Camden SR3表示Camden版本的第3次Bug修復(fù)版本。

TIPS

  • Spring Cloud版本發(fā)布記錄可詳見:<https://github.com/spring-cloud/spring-cloud-release/releases> ,從中我們可清晰看到Spring Cloud版本發(fā)布的時(shí)間及先后順序。
  • Spring Cloud版本演進(jìn)計(jì)劃:<https://github.com/spring-cloud/spring-cloud-release/milestones>,從中我們可了解Spring Cloud的版本演進(jìn)計(jì)劃,例如計(jì)劃什么時(shí)間點(diǎn)發(fā)布什么版本等。
  • 事實(shí)上,Spring有不少項(xiàng)目使用類似的命名方式。例如Spring Data、Spring Cloud Stream等。

子項(xiàng)目一覽

理解Spring Cloud的版本后,我們來看一下各版本Spring Cloud包含的子項(xiàng)目及版本。不同的Spring Cloud版本有不同的子項(xiàng)目:

Component Edgware.SR5 Finchley.SR2 Finchley.BUILD-SNAPSHOT
spring-cloud-aws 1.2.3.RELEASE 2.0.1.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.5.RELEASE 2.0.2.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-contract 1.2.6.RELEASE 2.0.2.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-config 1.4.5.RELEASE 2.0.2.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-netflix 1.4.6.RELEASE 2.0.2.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-security 1.2.3.RELEASE 2.0.1.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-cloud-cloudfoundry 1.1.2.RELEASE 2.0.1.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-cloud-consul 1.3.5.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-sleuth 1.3.5.RELEASE 2.0.2.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.16.RELEASE 2.0.6.RELEASE 2.0.7.BUILD-SNAPSHOT
spring-cloud-task 1.2.3.RELEASE 2.0.0.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-cloud-vault 1.1.2.RELEASE 2.0.2.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-gateway 1.0.2.RELEASE 2.0.2.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-openfeign 2.0.2.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-function 1.0.1.RELEASE 1.0.0.RELEASE 1.0.1.BUILD-SNAPSHOT

Spring Cloud/Spring Boot兼容性【重要】

Spring Cloud版本 Spring Boot版本
Greenwich 2.1.x
Finchley 2.0.x
Edgware 1.5.x
Dalston 1.5.x

可前往https://spring.io/projects/spring-cloud#overview查看版本兼容性。

原文:http://www.itmuch.com/spring-cloud/finchley-1/ ,轉(zhuǎn)載請說明出處。

干貨分享

跟我學(xué)Spring Cloud(Finchley版)-01-開篇

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI