Offer来了:Java面试核心知识点精讲(框架篇)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第2章 Spring Cloud原理及应用

Spring Cloud为企业级分布式Web系统构建提供了一站式的解决方案。为了简化分布式系统的开发流程和降低开发难度,Spring Cloud以组件化的形式提供了配置管理、服务发现、断路器、智能路由、负载均衡和消息总线等模块,应用程序只需要根据需求引入模块,便可方便地实现对应的功能。

◎Spring Cloud Config:Spring Cloud的配置中心,用于将配置存储到服务器中进行集中化管理,支持本地存储、Git和Subversion 3种存储方式。配置中心除了Spring Cloud Config,还有Apollo配置中心和基于ZooKeeper等方式实现的配置中心。

◎Spring Cloud Bus:Spring Cloud的事件消息总线,用于监听和传播集群中事件的状态的变化,例如集群中配置的变化检测和广播等。

◎Eureka:Netflix提供的服务注册和发现组件,集群中各个服务以REST的方式将服务注册到注册中心,并与注册中心保持心跳连接,主要用于服务发现和自动故障转移。

◎Hystrix:Netflix提供的服务熔断器,主要提供了服务负载过高或服务故障时的容错处理机制,以便集群在出现故障时依然能够对外提供服务,防止服务雪崩。

◎Zuul:Netflix Zuul为集群提供通用网关的功能,前端服务访问后端服务均需要通过Zuul的动态路由来实现。同时可以在Zuul上实现服务的弹性扩展、安全监测、统一权限认证等功能。

◎Archaius:Netflix提供的配置管理库,用于实现动态化属性配置和验证、线程安全配置操作、轮询框架、回调机制等功能。

◎Consul:Consul是基于Golang开发的一个服务注册、发现和配置工具,其功能与Eureka类似。

◎Spring Cloud for Cloud Foundry:Spring Cloud for Cloud Foundry Pivotal通过OAuth 2.0协议绑定服务到Cloud Foundry,Cloud Foundry是VMware推出的开源PaaS云平台。

◎Spring Cloud Sleuth:Spring的日志收集工具包,封装了Dapper和Log-based追踪及Zipkin和HTrace操作,为Spring Cloud的应用实现了一种分布式链路追踪解决方案。

◎Spring Cloud Data Flow:Spring Cloud Data Flow是一个混合计算模型,结合了流式数据与批量数据的处理方式,为Spring Cloud处理大数据提供了可能。

◎Spring Cloud Security:基于Spring Security工具包实现的安全管理组件,主要用于应用程序的安全访问和控制。

◎Spring Cloud ZooKeeper:Spring Cloud ZooKeeper封装了操作ZooKeeper的API,用于方便地操作ZooKeeper并实现服务发现和配置管理功能。

◎Spring Cloud Stream:Spring的流式数据处理工具包,封装了Redis、RabbitMQ、Kafka等消息的接收和发送功能,用于快速实现流式数据分析功能。

◎Spring Cloud CLI:基于Spring Boot CLI,Spring可以让用户使用命令行方式快速建立云组件。

◎Ribbon:Netflix Ribbon用于分布式系统API调用的负载均衡,提供随机负载、轮询负载等多种负载均衡策略,常配合服务发现和断路器使用。

◎Turbine:Netflix Turbine是实时消息或事件流的聚合工具,常用来监控集群下Hystrix的健康指标数据。

◎Feign:Feign是一种声明式、模板化的HTTP访问客户端。

◎Spring Cloud Task:Spring Cloud Task是Spring Cloud提供的分布式环境下集群任务的统一管理和调度工具。

◎Spring Cloud Connectors:Spring Cloud Connectors为在云平台上运行的基于JVM的应用程序提供了一个简单的抽象,可以在JVM运行时发现绑定的服务和部署信息,并且支持将发现的服务注册为Spring Bean。

◎Spring Cloud Cluster:提供LeaderShip(选举)功能,如ZooKeeper、Redis、Hazelcast、Consul等常见状态模式的抽象和实现。

◎Spring Cloud Starters:Spring Boot式的启动项目,为Spring Cloud提供开箱即用的依赖管理。