上QQ阅读APP看书,第一时间看更新
3.2 Spring Cloud
3.2.1 Spring Cloud简介
Spring Cloud是一个微服务框架。相比Dubbo等RPC框架,Spring Cloud提供的是一整套分布式系统解决方案。它为微服务架构开发中所涉及的服务治理、服务熔断、智能路由、链路追踪、消息总线、配置管理、集群状态管理等操作都提供了一种简单的开发方式。
3.2.2 Spring Cloud架构
Spring Cloud的架构大致如图3-1(来自互联网)所示。
图3-1
3.2.3 Spring Cloud组件
Spring Cloud是一个全套的框架,整个框架系统包含各种方方面面的功能组件,组件数量繁多,这里针对一些比较常用的组件进行说明。
- Netflix Eureka:一个基于REST服务的服务治理组件,包括服务注册中心、服务注册与服务发现机制的实现,目前仍是Spring Cloud的默认内置注册中心组件,不过自从Eureka 2.0停止开发的消息以后,有逐渐被Consul等注册中心替代的趋势。
- Netflix Hystrix:容错管理工具,实现断路器模式,通过控制服务的节点,从而对延迟和故障提供更强大的容错能力。
- Netflix Ribbon:实现客户端负载均衡的服务调用组件。
- Netflix Feign:基于Ribbon和Hystrix的声明式服务调用组件。
- Netflix Zuul:微服务网关,提供动态路由,访问过滤等服务。
- Spring Cloud Config:配置管理工具,支持使用Git存储配置内容,支持应用配置的外部化存储,支持客户端配置信息刷新、加解密配置内容等。
- Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
- Spring Cloud Sleuth:日志收集工具包,封装了Dapper、ZipKin和HTrace操作。
- Spring Cloud Consul:封装了Consul操作,Consul是一个服务发现与配置工具,与Docker容器可以无缝集成。
- Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现。
- Spring Cloud Stream:数据流操作开发包,封装了与Redis、Rabbit、Kafka等发送接收消息的接口。
- Spring Cloud Data Flow:大数据操作工具,通过命令行方式操作数据流。
- Spring Cloud Security:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2。
3.2.4 参考教程
提供一些Spring Cloud的参考资料:
- 官网教程:http://spring.io/projects/spring-cloud
- 博客教程:https://www.cnblogs.com/xifengxiaoma/p/9798330.html