1.3 什么是Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性,巧妙地简化了分布式系统基础设施的开发,如服务注册、服务发现、配置中心、消息总线、负载均衡、断路器、数据监控等,这些都可以用Spring Boot的开发风格做到一键启动和部署。通俗地讲,Spring Cloud就是用于构建微服务开发和治理的框架集合(并不是具体的一个框架),主要贡献来自Netflix OSS。

1.3.1 Spring Cloud模块介绍

Spring Cloud模块的相关介绍如下:

❑ Eureka:服务注册中心,用于服务管理。

❑ Ribbon:基于客户端的负载均衡组件。

❑ Hystrix:容错框架,能够防止服务的雪崩效应。

❑ Feign:Web服务客户端,能够简化HTTP接口的调用。

❑ Zuul:API网关,提供路由转发、请求过滤等功能。

❑ Config:分布式配置管理。

❑ Sleuth:服务跟踪。

❑ Stream:构建消息驱动的微服务应用程序的框架。

❑ Bus:消息代理的集群消息总线。

除了上述模块,还有Cli、Task……。本书只介绍一些常用的模块。

Spring Cloud是一个非常好的框架集合,它包含的功能模块非常多,这里不可能一一讲解到,凡是在本书中出现的模块都是真实开发中用得到的。对于那些没有在本书中进行讲解的模块,大家也可以自行学习,当然有任何问题也可以咨询笔者。联系邮箱:jihuan900@126.com。

1.3.2 Spring Cloud版本介绍

相信大家跟笔者一样,在第一次访问Spring Cloud官网时一定会有一个疑惑那就是版本太多了,到底哪个是稳定版本?哪个才是自己需要的版本?接下来就给大家简单介绍一下版本的问题。

访问官网https://projects.spring.io/spring-cloud/#learn可以看到网页右侧的版本列表,如图1-1所示。

图1-1 Spring Cloud版本

截至本书完稿时,最新的稳定版本是Finchley SR2。为什么其中还有Dalston、Edgware等这些版本?而不是像别的项目那样,版本号采用1.1、1.2、1.3这种的格式?因为Spring Cloud是一个拥有诸多子项目的大型综合项目,可以说是对微服务架构解决方案的综合套件组件,其中包含的各个子项目都独立进行着内容的迭代与更新,各自维护着自己的发布版本号。

至于怎么选择适合自己的版本,笔者认为,大家可以在接触的时候直接选最新的稳定版本。新版本中的Bug肯定要少,并且更稳定。写作本书的时候,官方发布的Spring Cloud最新稳定版本是Finchley SR2,所以本书的案例都是基于Finchley SR2进行讲解的。不同的版本有不同的功能,对应的每个子模块的版本也不一样,那么如何知道每个大版本下面具体的子模块是什么版本呢?答案就在官网的首页上面,在页面的最下方有一个表格(见表1-1),通过这个表格我们可以清楚地知道Finchley SR2对应的Spring Boot版本是2.0.6.RELEASE, Spring-Cloud-Bus是2.0.0.RELEASE。

表1-1 Spring Cloud版本列表