跟我学Spring Cloud(Finchley版)-01-开篇

前言·课程简介

最近挺多童鞋在公众号(itmuch_com)上催更Spring Cloud系列教程,故有此系列。以下是几点说明/规划/答疑:

问:为什么基于Finchley,而非Greenwich?

:就目前而言,Finchley更贴近生产,而Greenwich尚未发布——虽然已经RC了,但有挺多不确定因素,例如:Resilience4j是否会在Greenwich版本中成功孵化(应该是不会)、spring-cloud-netflix-concurrency-limits 文档一行都没有等等(搞不好项目被直接干掉也不一定……)还有很多其它未确定的点,导致笔者最终选择使用Finchley作为博客基础版本。未来,在Greenwich正式发布后,考虑升级到Greenwich,或者以番外的形式补充。

问:系列课程怎么规划的?

:分为主线故事和番外。主线故事讲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;另外讲持续集成、持续发布、代码质量控制……暂时是这么规划的。

问:我能从这套课程获得什么?

:学习完,能比较深入了解Spring Cloud各组件的使用套路、能避过N多常见的坑(诸如Feign配置坑啦、Ribbon配置坑啦、父子上下文坑啦、状态UNKONWN坑啦,你可能不知道我在说什么,没关系,以后遇到了再来查文档就行)、理解各组件的工作原理及组件之间的关系。

问:收费吗?

免费。极客时间曾两度找我约稿,我也确实考虑过收费。钱是好东西,我不是圣人,不过还是放弃了,赚钱的方式有很多,开源是我热爱的。我只要大家在提建议意见的时候别那么难听/难看就知足了。(为什么这么说,大家可以回溯一下我当初Spring Cloud开源视频下面的评论。太TM难看了)

问:我该怎么学习这套教程呢?

:我会在你需要注意的文字上【加粗】,重要知识点标记【重要】,在能拓展你视野的地方标记【TIPS】,在坑或者需要重点关注的地方标记【WARNING】;另外绝对不要忘记【拓展阅读】——这将是是拓展你知识面、开拓技术视野的一个重要途径。记住,永远别只去学习知识,知识是无穷无尽的,对于软件,知识还可能会变……你应该提升的是学习能力,并开拓技术视野。随着微服务/Cloud Native的深入人心,未来必然是整合能力 > 单项技术能力。

问:更新频率?不会太监吧?

:目前已经完稿21篇,每周规划3更,但不固定周几更新。至于是否太监,我只能尽量不,我不是专职写开源文档的……工作很忙,一般得十点才能到宿舍,开始自己的生活;不一般的时候,没有生活。总之呢,看的人越多,我也会越有激情啊!

问:你TM自问自答跟个精神病一样烦不烦?

:我TM年纪大了,废话多点不可以吗……

最后说一下,原创不易!如果课程对您有帮助,不要吝啬,请点转发!请喝咖啡就算了,咖啡让我失眠_

让我把废话到此为止吧!Let’s roll!

Spring Cloud简介

尽管Spring Cloud带有“Cloud”的字样,但它并不是云计算解决方案,而是在Spring Boot基础上构建的,用于快速构建分布式系统的通用模式的工具集

使用Spring Cloud开发的应用程序非常适合在Docker或者PaaS(例如Cloud Foundry)上部署,所以又叫做云原生应用(Cloud Native Application)。云原生(Cloud Native)可简单理解为面向云环境的软件架构。说到云原生,就不得不提一下《十二要素应用宣言(12-factor Apps)》,这是云原生架构的方法论与最佳实践。

拓展阅读

核心功能

  • Distributed/versioned configuration 分布式/版本化的配置管理
  • Service registration and discovery 服务注册于服务发现
  • Routing 路由
  • Service-to-service calls 端到端的调用
  • Load balancing 负载均衡
  • Circuit Breakers 断路器
  • Global locks 全局锁
  • Leadership election and cluster state 选举与集群状态管理
  • Distributed messaging 分布式消息

版本简介

我们知道,大多数Spring项目都是以“主版本号.次版本号.增量版本号.里程碑版本号”的形式命名版本号的,例如Spring Framework稳定版本4.3.5.RELEASE、里程碑版本5.0.0.M4等。其中,主版本号表示项目的重大重构;次版本号表示新特性的添加和变化;增量版本号一般表示bug修复;里程碑版本号表示某版本号的里程碑。

然而,Spring Cloud并未使用这种方式管理版本。下面我们来详细探讨一下Spring Cloud的版本。

我们来看一下Spring Cloud的版本,如图所示。

Spring Cloud版本

由图可知,Spring Cloud是以英文单词 SRX 的形式命名版本号的。那么英文单词和SR分别表示什么呢?

Spring Cloud是一个综合项目,它包含很多的子项目。由于子项目也维护着自己的版本号,Spring Cloud采用了这种版本命名方式,从而避免与子项目的版本混淆。其中,英文单词叫做“release train”,Angel、Brixton、Camden等都是伦敦地铁站的名称,它们按照字母顺序发行,我们可将其理解为主版本的演进。SR表示“Service Release”,一般表示Bug修复;在SR版本发布之前,会先发布一个Release版本,例如Camden RELEASE。

经过以上讲解,相信大家就能很好地理解Spring Cloud的版本了。例如,Camden SR3表示Camden版本的第3次Bug修复版本。

TIPS

子项目一览

理解Spring Cloud的版本后,我们来看一下各版本Spring Cloud包含的子项目及版本。不同的Spring Cloud版本有不同的子项目:

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/

干货分享

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容