前言·課程簡(jiǎn)介
最近挺多童鞋在公眾號(hào)(itmuch_com)上催更Spring Cloud系列教程概荷,故有此系列穴店。以下是幾點(diǎn)說(shuō)明/規(guī)劃/答疑:
問(wèn):為什么基于Finchley,而非Greenwich般又?
答:就目前而言敛劝,F(xiàn)inchley更貼近生產(chǎn),而Greenwich尚未發(fā)布——雖然已經(jīng)RC了绊序,但有挺多不確定因素硕舆,例如:Resilience4j是否會(huì)在Greenwich版本中成功孵化(應(yīng)該是不會(huì))、spring-cloud-netflix-concurrency-limits
文檔一行都沒(méi)有等等(搞不好項(xiàng)目被直接干掉也不一定……)還有很多其它未確定的點(diǎn)骤公,導(dǎo)致筆者最終選擇使用Finchley作為博客基礎(chǔ)版本抚官。未來(lái),在Greenwich正式發(fā)布后阶捆,考慮升級(jí)到Greenwich凌节,或者以番外的形式補(bǔ)充。
問(wèn):系列課程怎么規(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ī)劃的。
問(wèn):我能從這套課程獲得什么昔善?
答:學(xué)習(xí)完元潘,能比較深入了解Spring Cloud各組件的使用套路、能避過(guò)N多常見(jiàn)的坑(諸如Feign配置坑啦君仆、Ribbon配置坑啦翩概、父子上下文坑啦牲距、狀態(tài)UNKONWN坑啦,你可能不知道我在說(shuō)什么钥庇,沒(méi)關(guān)系牍鞠,以后遇到了再來(lái)查文檔就行)、理解各組件的工作原理及組件之間的關(guān)系评姨。
問(wèn):收費(fèi)嗎难述?
答:免費(fèi)。極客時(shí)間曾兩度找我約稿吐句,我也確實(shí)考慮過(guò)收費(fèi)胁后。錢是好東西,我不是圣人嗦枢,不過(guò)還是放棄了攀芯,賺錢的方式有很多,開(kāi)源是我熱愛(ài)的净宵。我只要大家在提建議意見(jiàn)的時(shí)候別那么難聽(tīng)/難看就知足了敲才。(為什么這么說(shuō),大家可以回溯一下我當(dāng)初Spring Cloud開(kāi)源視頻下面的評(píng)論择葡。太TM難看了)
問(wèn):我該怎么學(xué)習(xí)這套教程呢紧武?
答:我會(huì)在你需要注意的文字上【加粗】,重要知識(shí)點(diǎn)標(biāo)記【重要】敏储,在能拓展你視野的地方標(biāo)記【TIPS】阻星,在坑或者需要重點(diǎn)關(guān)注的地方標(biāo)記【WARNING】;另外絕對(duì)不要忘記【拓展閱讀】——這將是是拓展你知識(shí)面已添、開(kāi)拓技術(shù)視野的一個(gè)重要途徑妥箕。記住,永遠(yuǎn)別只去學(xué)習(xí)知識(shí)更舞,知識(shí)是無(wú)窮無(wú)盡的畦幢,對(duì)于軟件,知識(shí)還可能會(huì)變……你應(yīng)該提升的是學(xué)習(xí)能力缆蝉,并開(kāi)拓技術(shù)視野宇葱。隨著微服務(wù)/Cloud Native的深入人心,未來(lái)必然是整合能力 > 單項(xiàng)技術(shù)能力。
問(wèn):更新頻率?不會(huì)太監(jiān)吧常挚?
答:目前已經(jīng)完稿21篇,每周規(guī)劃3更戒祠,但不固定周幾更新。至于是否太監(jiān),我只能盡量不脖祈,我不是專職寫開(kāi)源文檔的……工作很忙年局,一般得十點(diǎn)才能到宿舍际看,開(kāi)始自己的生活;不一般的時(shí)候矢否,沒(méi)有生活仿村。總之呢兴喂,看的人越多,我也會(huì)越有激情胺僦尽衣迷!
問(wèn):你TM自問(wèn)自答跟個(gè)精神病一樣煩不煩?
答:我TM年紀(jì)大了酱酬,廢話多點(diǎn)不可以嗎……
最后說(shuō)一下壶谒,原創(chuàng)不易!如果課程對(duì)您有幫助膳沽,不要吝嗇汗菜,請(qǐng)點(diǎn)轉(zhuǎn)發(fā)!請(qǐng)喝咖啡就算了挑社,咖啡讓我失眠_
讓我把廢話到此為止吧陨界!Let’s roll!
Spring Cloud簡(jiǎn)介
盡管Spring Cloud帶有“Cloud”的字樣,但它并不是云計(jì)算解決方案痛阻,而是在Spring Boot基礎(chǔ)上構(gòu)建的菌瘪,用于快速構(gòu)建分布式系統(tǒng)的通用模式的工具集。
使用Spring Cloud開(kāi)發(fā)的應(yīng)用程序非常適合在Docker或者PaaS(例如Cloud Foundry)上部署阱当,所以又叫做云原生應(yīng)用(Cloud Native Application)俏扩。云原生(Cloud Native)可簡(jiǎn)單理解為面向云環(huán)境的軟件架構(gòu)。說(shuō)到云原生弊添,就不得不提一下《十二要素應(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ù)注冊(cè)于服務(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 分布式消息
版本簡(jiǎn)介
我們知道油坝,大多數(shù)Spring項(xiàng)目都是以“主版本號(hào).次版本號(hào).增量版本號(hào).里程碑版本號(hào)”的形式命名版本號(hào)的嫉戚,例如Spring Framework穩(wěn)定版本4.3.5.RELEASE、里程碑版本5.0.0.M4等免钻。其中彼水,主版本號(hào)表示項(xiàng)目的重大重構(gòu);次版本號(hào)表示新特性的添加和變化极舔;增量版本號(hào)一般表示bug修復(fù)凤覆;里程碑版本號(hào)表示某版本號(hào)的里程碑。
然而拆魏,Spring Cloud并未使用這種方式管理版本盯桦。下面我們來(lái)詳細(xì)探討一下Spring Cloud的版本慈俯。
我們來(lái)看一下Spring Cloud的版本,如圖所示拥峦。
由圖可知贴膘,Spring Cloud是以英文單詞 SRX
的形式命名版本號(hào)的。那么英文單詞和SR分別表示什么呢略号?
Spring Cloud是一個(gè)綜合項(xiàng)目刑峡,它包含很多的子項(xiàng)目。由于子項(xiàng)目也維護(hù)著自己的版本號(hào)玄柠,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)過(guò)以上講解梯浪,相信大家就能很好地理解Spring Cloud的版本了捌年。例如,Camden SR3表示Camden版本的第3次Bug修復(fù)版本挂洛。
TIPS
- Spring Cloud版本發(fā)布記錄可詳見(jiàn):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的版本后应结,我們來(lái)看一下各版本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查看版本兼容性。
本文首發(fā)
http://www.itmuch.com/spring-cloud/finchley-1/