Spring Cloud是一个基于Spring boot实现的微服务架构开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等提供了一种简单的开发方式(摘自【Spring Cloud 微服务实战】)。
Spring Cloud包含了多个子项目(可以到中文官网查看:https://springcloud.cc),下面我们就一一的来学习下每个项目的用途:
- Spring Cloud Config: 配置管理工具,也就是分布式的配置中心。支持使用Git存储配置文件,它实现了应用配置的外部存储化。服务上线运营后,如果需要调整服务的配置,要是把服务停了然后重新部署,显着有些低效,并且如果节点过多(像阿里这种变态公司,某个服务可能上千个节点),那就是无法承受的方法。配置中心就是来帮忙解决这个问题的。
- Netflix Eureka:服务治理组件,也就是负责服务注册和服务发现机制的实现。
- Netflix Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力。
- Netflix Ribbon:客户端负载均衡的服务调用组件,注意它是在客户端实现负载均衡的,原理就是将服务列表存储在客户端,依次循环调用来实现
- Netflix Feign:基于Ribbon和Hystrix的声明式服务调用组件
- Netflix Zuul:网关组件,提供智能路由、访问过滤等功能
- Netflix Archaius: 外部化配置组件
- Spring Cloud Bus:事件、消息总线,用于传播集群中的状态变化或事件,以触发后续的处理
- Spring Cloud Cluster:针对ZooKeeper、Redis、Hazelcast、Consul的选举算法和通用状态模式的实现
- Spring Cloud for Cloud Foundry : 通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。
- Spring Cloud Consul : 封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。
- Spring Cloud Stream:通过Redis、RabbitMQ或者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 Boot风格iangmu的基础依赖模块
- Spring Cloud CLI: 基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。
- Spring Cloud Task:提供云端计划任务管理、任务调度。