SpringCloud
SpingCloud 为开发人员提供了工具,以快速构建分布式系统中的一些常见模式(如:配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、Leader选举、分布式session、集群状态)。他们将适用于任何分布式环境中,包括开发人员自己的笔记本电脑,金属裸数据中心,Cloud Foundry等托管平台。
SpringCloud 特性
- 分布式/版本化配置
- 服务注册与发现
- 路由
- 服务间调用
- 负载均衡
- 断路器
- 全局锁
- Leader选举和集群状态
- 分布式消息
SpringCloud 核心组件
SpringCloud Netflix
SpringCloud Netflix 提供了 Netflix OSS 服务,通过 SpringBoot 应用自动配置和绑定到 Spring 环境以及其他 Spring 编程模型风格进行集成。用几个简单的注释可以快速启用和配置在您的应用程序的常见模式,并且使用一些久经沙场的 Netflix 组件构建大型分布式系统。这些模式提供包括:
- Eureka:服务注册与发现
- Hystrix:断路器,服务熔断
- Zuul:路由(API网关)
- Ribbon:客户端负载均衡器
- Feign:声明式的 REST 客户端。SpringCloud 中使用的是 OpenFeign,其基于Feign 集成了Ribbon 和 Hystrix。
- Archaius:分布式配置中心
SpringCloud Alibaba
SpringCloud Alibaba 为分布式系统开发提供了一个一站式解决方案。它包含所有开发分布式应用程序必需的组件,方便您使用 SpringCloud 开发您的应用程序。
你只需要添加一些注释和少量的配置将 SpringCloud 应用程序连接到阿里巴巴的分布式解决方案,并通过阿里巴巴中间件构建一个分布式应用系统。主要的组件有:
- Sentinel:流量控制和服务降级
- Nacos:服务注册与发现
- Nacos:分布式配置中心
- RocketMQ:高可扩展的事件驱动消息中间件
- Seata:分布式事务
- Dubbo:RPC 通信框架
除了上述两家公司提供的组件,Spring 自身也提供了许多好用的组件:
- Spring Cloud Gateway:路由(API网关)
- Spring Cloud Config:分布式配置中心
- Spring Cloud Sleuth:分布式链路追踪,可与ZipKin兼容
还有其他组织的一些组件 SpringCloud 也进行了集成:
- ZipKin:分布式链路追踪
- Consul:服务注册与发现