Spring Cloud Netflix 第一代
在微服务架构中,Netflix是一个知名的科技公司,它在构建和推广微服务架构方面做出了重要贡献。Netflix提供了一系列开源工具和框架,用于支持构建可扩展、弹性和高可用的微服务应用。
下面是Netflix在微服务架构中的一些核心组件和框架:
- Netflix Eureka:Eureka是一个服务发现组件,用于管理和监控微服务的注册和发现。它允许微服务在注册时向Eureka注册自己的信息,其他微服务可以通过查询Eureka来发现和调用需要的服务。
- Netflix Ribbon:Ribbon是一个负载均衡框架,用于在微服务之间进行客户端负载均衡。它可以根据配置的负载均衡策略选择合适的微服务实例来处理请求。
- Netflix Hystrix:Hystrix是一个容错框架,用于处理微服务之间的故障和延迟。它通过实现断路器模式来隔离和限制故障的传播,提高系统的弹性和可靠性。
- Netflix Zuul:Zuul是一个边缘服务网关,用于路由和过滤微服务请求。它可以提供请求的路由、负载均衡、认证和授权等功能,同时也支持动态路由配置和请求过滤。
- Netflix Archaius:Archaius是一个配置管理库,用于动态管理微服务的配置。它可以实现配置的热更新和动态加载,使得微服务的配置更加灵活和可管理。
除了以上列举的组件外,Netflix还有其他一些在微服务架构中使用的工具和框架,如Netflix Feign(用于声明式的服务调用)、Netflix Turbine(用于聚合和监控Hystrix断路器的指标)等。
Netflix的这些组件和框架为构建微服务架构提供了丰富的工具和解决方案,帮助开发人员更好地实现微服务的可扩展性、弹性和高可用性。
Spring Cloud Alibaba 第二代
同Spring Cloud一样,Spring Cloud Alibaba 也是一套微服务解决方案。Spring cloud Alibaba致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务
依托Spring Cloud Alibaba,只需要添加一些注解和少量配置,就可以将Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统
阿里开源组件
Nacos:阿里巴巴开源产品,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Sentinel:面向分布式服务架构的轻量级流量控制产品,把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。Dubbo:Apache Dubbo™ 是一款高性能 Java RPC 框架,用于实现服务通信。Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案
阿里商业化组件」
Alibaba Cloud ACM:一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。Alibaba Cloud OSS:阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。Alibaba Cloud SchedulerX:阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。Alibaba Cloud SMS:覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
作为 Spring Cloud 体系下的新实现,Spring Cloud Alibaba 跟官方的组件或其它的第三方实现如 Netflix,Consul,Zookeeper 等对比,具备了更多的功能:
常用组件
Spring Cloud Netflix Eureka:服务注册中心。Spring Cloud Zookeeper:服务注册中心。Spring Cloud Consul:服务注册和配置管理中心。Spring Cloud Netflix Ribbon:客户端负载均衡。Spring Cloud Netflix Hystrix:服务容错保护。Spring Cloud Netflix Feign:声明式服务调用。Spring Cloud OpenFeign(可替代 Feign):OpenFeign 是 Spring Cloud 在 Feign 的基础上支持了 Spring MVC 的注解,如 @RequesMapping等等。OpenFeign 的 @FeignClient 可以解析 SpringMVC 的 @RequestMapping 注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。Spring Cloud Netflix Zuul:API 网关服务,过滤、安全、监控、限流、路由。Spring Cloud Gateway(可替代 Zuul):Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,Spring Cloud Gateway 旨在为微服务架构提供一种简单而有效的统一的 API 路由管理方式。Spring Cloud Gateway 作为 Spring Cloud 生态系中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。Spring Cloud Security:安全认证。Spring Cloud Config:分布式配置中心。配置管理工具,支持使用 Git 存储配置内容,支持应用配置的外部化存储,支持客户端配置信息刷新、加解密配置内容等。Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与 Spring Cloud Config 联合实现热部署。Spring Cloud Stream:消息驱动微服务。Spring Cloud Sleuth:分布式服务跟踪。Spring Cloud Alibaba Nacos:阿里巴巴开源产品,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Spring Cloud Alibaba Sentinel:面向分布式服务架构的轻量级流量控制产品,把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Spring Cloud Alibaba RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。Spring Cloud Alibaba Dubbo:Apache Dubbo™ 是一款高性能 Java RPC 框架,用于实现服务通信。Spring Cloud Alibaba Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。