一:Spring Cloud 之简介

目录

1. 简介

  • 此篇开始进入Spring Cloud的学习理解之路,核心是以demo的方式记录Spring Cloud的基础用法。
  • 此篇是对Spring Cloud的整体的理解
  • 结合GitHub上项目来记录,每篇会跟GitHub的地址
  • 每篇博客会记录一个点,并且向GitHub上提交一次,旨在可以直接切换到指定的一次提交时,代码与博客中完全一致。而不是看第一篇文章时,demo却已包含了其他很多功能验证实现。

2. Spring Cloud是什么

Spring Cloud 是一个基于Spring boot,用于快速构建分布式系统的通用模式的工具集。 为微服务架构中涉及的配置管理、服务治理、限流熔断、智能路由、API网关、控制总线、全局锁、分布式会话、调用链监控、 集群状态管理等提供了一种简单的开发方式。

3. 为什么使用Spring Cloud

  • 提供了微服务架构涉及的各个方面的解决方案与技术实现,并且业界有实际实践
  • 微服务架构集大成者,并且与各个子项目的兼容有保证,自已实现的框架则需要进行大量的兼容性测试。
  • Spring Cloud开发的应用非常适合在Docker或者PaaS(Cloud Foundry)上部署,又叫云原生应用(Cloud Native Application),大大降低运维难度和成本
  • 可结合Docker实现快速发布和持续交付。
  • 由Spring、Netflix、Pivotal共同演进,Spring Cloud会越来越完善
  • 社区活跃度高、文档丰富

4. Spring Cloud版本号理解

Spring Cloud的版本号命名方式与以往项目不同,并且每个大版本下的小版本号命名方式也同样不同,理解版本号的命名方式与缘由对搞清Spring Cloud的演进和版本选择很重要。

4.1 为什么采用单词做版本名称

Spring Cloud包含的各个子项目都独立的进行着内容的迭代与更新,各自维护自己的发布版本号,每一个Spring Cloud的版本都包含了不同版本的子项目,为了管理每个版本的子项目清单,避免版本号与其子项目的版本号混淆,故没有采用版本号的方式,而是采用版本名的方式。

4.2 版本命名方式

  • 版本名称第一个单词缘由:采用的伦敦地铁站的名字,按照字母排序对应版本的时间顺序。比如最早的RELEASE版本是 Angel,第二是Birxton……
  • 版本名称中SR缘由:当一个Spring cloud 项目的发布内容积累到临界点或者一个严重的BUG解决可用后,就会发布一个“service Release”版本, 简称SR(X)版本
  • 版本号:在SR(X)版本中,x是一个递增数字,每次更新x会增加

GitHub上spring-cloud版本更新记录(https://github.com/spring-cloud/spring-cloud-release/releases):
版本发布

5. Spring Cloud包含的子项目概览

5.1 子项目概览与版本兼容

实际研发过程中会使用版本管理工具,借助Spring Cloud封装好的与大版本配套的包含所依赖的子项目依赖关系清单来统一版本,解决兼容性问题,如使用maven管理项目依赖,则可以使用Spring Cloud的pom文件来作为dependencyManagement入口文件。

同时也可查看Spring cloud与子项目兼容性(以Spring cloud官网为准,传送门):

Component Edgware.SR4 Finchley.SR1 Finchley.BUILD-SNAPSHOT
spring-cloud-aws 1.2.3.RELEASE 2.0.0.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.4.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-contract 1.2.5.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-config 1.4.4.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-netflix 1.4.5.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-security 1.2.3.RELEASE 2.0.0.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-cloud-cloudfoundry 1.1.2.RELEASE 2.0.0.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-cloud-consul 1.3.4.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-sleuth 1.3.4.RELEASE 2.0.1.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.14.RELEASE 2.0.4.RELEASE 2.0.4.BUILD-SNAPSHOT
spring-cloud-task 1.2.3.RELEASE 2.0.0.RELEASE 2.0.1.BUILD-SNAPSHOT
spring-cloud-vault 1.1.1.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-gateway 1.0.2.RELEASE 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-openfeign 2.0.1.RELEASE 2.0.2.BUILD-SNAPSHOT
spring-cloud-function 1.0.0.RELEASE 1.0.0.RELEASE 1.0.1.BUILD-SNAPSHOT

5.2 子项目简介

整理于 Spring Cloud中文网,与Spring Cloud 官网

  • spring-cloud-aws:用于简化整合 Amazon Web Service 的组件
  • spring-cloud-bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
  • spring-cloud-cli:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。
  • spring-cloud-contract:
  • spring-cloud-config:配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion。
  • spring-cloud-netflix:针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
    • Netflix Eureka:云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移。
    • Netflix Hystrix:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
    • Netflix Ribbon: 客户端负载 均和的服务调用组件(客户端负载)
    • Netflix Feign: 一种声明式、模板化的HTTP客户端
    • Netflix Zuul:边缘服务工具,是提供动态路由,监控,弹性,安全等的边缘服务。
    • Netflix Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。
    • Netflix Turbine:聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics情况
  • spring-cloud-data-flow:大数据操作工具,通过命令行方式操作数据流。
  • spring-cloud-security:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2。
  • spring-cloud-cloudfoundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。
  • spring-cloud-consul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。
  • spring-cloud-sleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作。
  • spring-cloud-stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。
  • spring-cloud-zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现。
  • spring-boot:快速开发框架,Spring Cloud的基础
  • spring-cloud-task:提供云端计划任务管理、任务调度。
  • spring-cloud-openfeign:Feign是一种声明式、模板化的HTTP客户端。

猜你喜欢

转载自blog.csdn.net/chenghuaying/article/details/81486133