《Spring Cloud微服务架构进阶》——2Spring Cloud总览

举报
华章计算机 发表于 2019/06/02 23:39:00 2019/06/02
【摘要】 本书摘自《Spring Cloud微服务架构进阶》——书中的第2章,第2.1节作者是朱荣鑫、张天、黄迪璇。

第2章Spring Cloud总览

在介绍微服务架构相关的概念之后,本章将会介绍Spring Cloud相关的概念。Spring Cloud是一系列框架的有机集合,基于Spring Boot实现的云应用开发工具,为云原生应用开发中的服务发现与注册、熔断机制、服务路由、分布式配置中心、消息总线、负载均衡和链路监控等功能的实现提供了一种简单的开发方式。

本章将会对Spring Cloud架构及相关组件进行初步介绍,然后介绍Spring Cloud上下文和Spring Cloud的公共抽象,这部分内容可能会在多个组件中出现,所以此处的介绍并不依赖具体的组件。

2.1 Spring Cloud架构

Spring社区推出Spring Cloud框架与其自身的理念演变密切相关。Spring是于2003年兴起的一个轻量级的Java开发框架,但是随着其不断地发展壮大,框架的代码规模越来越庞大,集成的项目越来越多,配置文件也变得越来越混乱,慢慢地背离最初的理念。如今,分布式系统和微服务架构等更多新的技术理念的陆续出现,催生了这样一种想法:Spring社区需要一款框架来改善以前的开发模式并适应微服务开发环境。Spring Cloud也就此应运而生。

1.版本说明

Spring Cloud不同于其他独立项目,它是拥有众多子项目的项目集合。其所有版本由版本名和版本号组成,如Finchley M9和Edgware SR3。Finchley和Edgware就是版本名,名字是以伦敦地铁站命名并且遵循字母顺序(第一个release版本为Angel,第二个为Brixton),而M9和SR3是版本号。M是里程碑(milestone)的含义,M9就是指第九个里程碑。SR(Service Releases)则代表着稳定版本,后边一般都会有一个递增的数字,例如SR3就是指第三个发布版本。图2-1为Spring Cloud包含的组件的详细列表,最新的版本为Finchley RELEASE,基于Spring Boot 2.0.3,Spring Boot 2.X相对之前版本有较大的变动。本书的源码分析根据最新的Finchley RELEASE展开。

image.png

图2-1 Spring Cloud组件及其对应的版本

2. Spring Cloud组成

Spring Cloud是在Spring Boot的基础上构建的,用于简化分布式系统构建的工具集,为开发人员提供快速建立分布式系统中一些常见的组件。Spring Cloud技术体系如图2-2所示。

Spring Cloud包含的组件众多,各个组件都有各自不同的特色和优点,为用户提供丰富的选择:

服务注册与发现组件:Eureka、Zookeeper和Consul等。本书将会重点讲解Eureka,Eureka是一个REST风格的服务注册与发现的基础服务组件。

服务调用组件:Hystrix、Ribbon和OpenFeign;其中Hystrix能够使系统在出现依赖服务失效的情况下,通过隔离系统依赖服务的方式,防止服务级联失败,同时提供失败回滚机制,使系统能够更快地从异常中恢复;Ribbon用于提供客户端的软件负载均衡算法,还提供了一系列完善的配置项如连接超时、重试等;OpenFeign是一个声明式RESTful网络请求客户端,它使编写Web服务客户端变得更加方便和快捷。

image.png

图2-2 Spring Cloud技术体系

路由和过滤组件:包括Zuul和Spring Cloud Gateway。Spring Cloud Gateway提供了一个构建在Spring 生态之上的API网关,其旨在提供一种简单而有效的途径来发送API,并为他们提供横切关注点,如:安全性、监控指标和弹性。

配置中心组件:Spring Cloud Config实现了配置集中管理、动态刷新等配置中心的功能。配置通过Git或者简单文件来存储,支持加解密。

消息组件:Spring Cloud Stream和Spring Cloud Bus。Spring Cloud Stream对于分布式消息的各种需求进行了抽象,包括发布订阅、分组消费和消息分区等功能,实现了微服务之间的异步通信。Spring Cloud Bus主要提供了服务间的事件通信(如刷新配置)。

安全控制组件:Spring Cloud Security基于OAuth2.0开放网络的安全标准,提供了微服务环境下的单点登录、资源授权和令牌管理等功能。

链路监控组件:Spring Cloud Sleuth提供了全自动、可配置的数据埋点,以收集微服务调用链路上的性能数据,并可以结合Zipkin进行数据存储、统计和展示。

除了上述组件之外,Spring Cloud还提供了命令行工具Spring Cloud Cli和集群工具Spring Cloud Cluster。Spring Cloud Cli提供了以命令行和脚本的方式来管理微服务及Spring Cloud组件的方式,Spring Cloud Cluster提供了集群选主、分布式锁和一次性令牌等分布式集群需要的技术组件。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200