Spring Cloud 笔记(一) Spring Cloud 介绍
1.简介
Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。
实际上,Spring Cloud是一个全家桶式的技术栈,包含了很多组件。本文先从其最核心的几个组件入手,来剖析一下其底层的工作原理。也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。
2.特点
- 约定优于配置
- 适用于各种环境,开发、部署在PC Server或各种云环境(例如阿里云、AWS等)均可
- 隐藏了组件的复杂性,并提供声明试、无XML的配置方式
- 开箱即用,快速启动
- 轻量级的组件。Spring Cloud整合的组件大多都比较轻量,例如Eureka、Zuul等,都是各自领域轻量级的实现
- 组件丰富,功能齐全。Spring Cloud为微服务架构提供了非常完整的支持。例如 配置管理、服务发现、断路器、微服务网关等
- 选型中立、丰富。例如 Spring Cloud支持使用Eureka、zookeeper或Consul实现服务发现
- 灵活。Spring Cloud 的组成部分是解耦的,开发人员可按需灵活挑选技术选型
3.整体架构图
4.版本介绍
Spring Cloud是一个由众多独立子项目组成的大型综合项目,每个子项目有不同的发行节奏,都维护着自己的发布版本号。Spring Cloud通过一个资源清单BOM(Bill of Materials)来管理每个版本的子项目清单。为避免与子项目的发布号混淆,所以没有采用版本号的方式,而是通过命名的方式。这些版本名称的命名方式采用了伦敦地铁站的名称,同时根据字母表的顺序来对应版本时间顺序,比如:最早的Release版本:Angel,第二个Release版本:Brixton,然后是Camden、Dalston、Edgware,Finchley,目前最新的是Greenwich版本。
常见版本号说明
举个瓜:2.0.3 RELEASE
2:主版本号,当功能模块有较大更新或者整体架构发生变化时,主版本号会更新
0:次版本号。次版本表示只是局部的一些变动。
2:修改版本号。一般是bug的修改或者是小的变动
RELEASE:希腊字母版本号。此版本号用户标注当前版本的软件处于哪个开发阶段
希腊字母版本号
- Base:设计阶段。只有相应的设计没有具体的功能实现。
- Alpha:软件的初级版本。基本功能已经实现,但存在较多的bug。
- Bate:相对于Alpha已经有了很大的进步,消除了严重的BUG,但还存在一些潜在的BUG,还需要不断测试。
- RELEASE:最终版本,没有太大的问题。
SpringCloud的版本号
- 为什么springcloud版本用的是单词而不是数字呢?
设计的目的是为了更好的管理每个SpringCloud子项目的清单,避免自己的版本号与子项目的版本号混淆。 - 有什么规则么?
(常用了英国伦敦地铁站的名称来命名)首字母越靠后表示版本号越大 - 关于版本发布说明?
- BUILD-XXX:开发版, 开发团队内部使用,不是很稳定
- GA:稳定版, 相比于开发版,基本上可以使用了
- PRE(M1、M2): 里程碑版, 主要是修复了一些BUG的版本,一个GA后通常有多个里程碑版
- RC:候选发布版, 该阶段的软件类似于最终版的一个发行观察期,基本只修复比较严重的BUG
- SR:正式发布版,~~~~这个就没啥好说啦
spring cloud 的版本要与springboot的版本对应,否则可能会出现一些意外惊喜。就像Spring Boot需要依赖对应的Spring Framework版本一样,Spring Cloud需要依赖对应版本的Spring Boot,我们不能随便使用版本。
5.新配置项目做的几件事情(三步走)
- 导入依赖
- 编写配置文件
- 开启这个功能 @EnableXXXXX
还没有评论,来说两句吧...