天天看点

(一)Spring Cloud 介绍 -- 笔记简介版本说明

  • 简介
  • 版本说明
    • 版本名与版本号

实时微服务架构初期,需要被考虑的内容:

服务治理:阿里的Dubbo和当当再次扩展的DubboX、Netflix的Eureka、Apache的Consul等。

分布式配置管理:百度的Disconf、Netflix的Archaius、360的QConf、Spring Cloud的Config、淘宝的Diamond等。

批量任务:当担的Elastic-Job、LinkedIn的Azkaban、Spring Cloud的Task等。

服务跟踪:京东的Hydra、Spring Cloud的Sleuth、Twitter的Zipkin等。

简介

Spring Cloud是一个基于Spring Boot实现的微服务框架开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。

Spring Cloud包含了很多子项目:

  • Spring Cloud Config:配置管理工具
  • Spring Cloud Netflix:核心组件,对多个Netflix开源套件进行整合。
    • Euraka:服务治理组件,包含服务注册中心、服务注册与发现机制的实现。
    • Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力。
    • Ribbon:客户端负载均衡的服务调用组件。
    • Feign:基于Ribbon和Hystrix的声明式服务调用组件。
    • Zuul:网关组件,提供智能路由、访问过滤等功能。
    • Archaius:外部化配置组件。
  • Spring Cloud Bus:时间、消息总线,用于传播集群中的状态变化或事件,以触发后续的处理,比如用来动态刷新配置等。
  • Spring Cloud Cluster:针对ZooKeeper、Redis、Hazelcast、Consul的选举算法和通用状态模式的实现。
  • Spring Cloud Cloudfoundry:与Pivotal Cloudfoundry的整合支持
  • Spring Cloud Consul:服务发现与配置管理工具。
  • Spring Cloud Stream:通过Redis、Rabbit或者Kafka实现的消费微服务,可以通过简单的声明式模型来发送和接收消息。
  • Spring Cloud AWS:用于简化整合Amazon Web Service的组件。
  • Spring Cloud Security:安全工具包,提供在Zuul代理中对OAuth2客户端请求的中继器。
  • Spring Cloud Sleuth:Spring Cloud应用的分布式跟踪实现,可以完美整合Zipkin。
  • Spring Cloud ZooKeeper:基于ZooKeeper的服务发现与配置管理组件。
  • Spring Cloud Starters:Spring Cloud的基础组件,它是基于Spring Boot风格项目的基础依赖模块。
  • Spring Cloud CLI:用于在Groovy中快速创建Spring Cloud应用的Spring Boot CLI插件。
  • ……

版本说明

版本名与版本号

Spring Cloud不像Spring社区其他一些项目那样相对独立,它是一个拥有诸多子项目的大型综合项目,可以说是对微服务架构解决方案的综合套件组合, 其包含的各个子项目也都独立进行内容更新与迭代,各自都维护着自己的发布版本号。为了管理每个版本的项目清单,避免Spring Cloud版本号与其子项目的版本号相混淆,没有采用版本号的方式,而是通过命名的方式。

这些版本的名字采用了伦敦地铁站的名字,根据字母表的顺序来对应版本时间顺序,比如最早的Release版本为Angel,第二个Release版本为Brixton… …

当一个版本的Spring Cloud项目的发布内容积累到临界点或者一个严重bug解决可用后,就会发布一个“service releases”版本,简称SRX版本,其中X是一个递增的数字,所以Brixton.SR5就是Brixton的第5个Release版本。

在使用Brixton版本的时候需要注意Spring Boot的版本,必须使用1.3.x版本,而不能使用1.4.x版本,否则会出现各种问题。若一定要使用Spring 1.4.x版本的话,必须将Spring Cloud版本升级到Canden版本,目前Camden已经发布Release版本,所以可以放心使用。Camden版本虽然可以兼容Brixton版本的各种实现方法,但是再升级后会发现一些方法已经被标注为过期。

继续阅读