Spring Cloud Netflix 介绍
Netflix套件中有Eureka
、Ribbon
、Hystrix
、Zuul
、Feign
五个非常知名的开源项目,分别被用于服务治理
、负载均衡
、服务容错
、服务网关
、服务通信
。
2018年,Netflix套件中的开源项目陆续进入了维护模式。
2020年12月22日,Spring Cloud 2020.0.0版本发布,该版本中移除了Netflix套件中的相关依赖。
Spring Cloud Alibaba 介绍
2018年7月,Spring Cloud Alibaba正式开源,进入Spring Cloud孵化器。2018年10月,Spring Cloud Alibaba发布开源后的第一个版本。
Spring Cloud Alibaba提供的组件如下:
Sentinel
:阿里巴巴开源产品,不仅仅可以作为断路器,也支持流量控制和服务降级。Nacos
:阿里巴巴开源产品,服务注册与服务发现,同时也可以作为配置中心。RocketMQ
:阿里巴巴开源的分布式消息和流计算平台。Dubbo
:阿里巴巴开源产品,高性能Java RPC框架,服务通信组件。Seata
:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。Alibaba Cloud ACM
:其前身为淘宝内部配置中心Diamond,是一款应用配置中心产品,需付费。Alibaba Cloud OSS
:阿里云对象存储OSS是一款海量、安全、低成本、高可靠的云存储服务,需付费。Alibaba Cloud SMS
:阿里云短信服务,需付费。Alibaba Cloud SchedulerX
:阿里中间件自研的基于Akka架构的新一代分布式任务调度平台,需付费。
spring-cloud 和 spring-cloud-alibaba 的区别
Spring Cloud
:Spring 官方提供的分布式应用开发的一套共用模式,也可以理解成一套微服务开发的统一的抽象编程模型。Spring Cloud Netflix
:基于 Spring Cloud 编程模型实现的微服务框架,是最早期的微服务框架。近年来,Netflix 宣布大多数组件停止维护。Spring Cloud Alibaba
:Alibaba 提供的基于 Spring Cloud 编程模型实现的微服务框架,其所有组件都来自于阿里巴巴微服务技术,无论是解决方案完整性、技术成熟度、社区还是文档资料等都对国内开发者非常友好。
spring-cloud
是Spring
官方提供的微服务开发工具。它基于Spring Boot
构建,提供了一系列框架和工具帮助我们快速构建分布式系统中的微服务架构。spring-cloud
主要包含以下组件:
Eureka
:服务注册中心,用于服务注册与发现。Ribbon
:负载均衡器,在服务调用方进行负载均衡。Feign
:声明式 REST 客户端,简化 RESTful API 的调用。Hystrix
:熔断器,容错管理工具,防止分布式系统中级联故障。Config
:配置中心,通过 Git 仓库统一管理应用配置。Bus
:事件总线,用于广播配置文件变更事件。Sleuth
:调用链监控系统,用于跟踪微服务中的调用链信息。Stream
:消息驱动微服务,简化消息系统的使用。Zuul
:API 网关,用于认证、监控和路由转发等功能。Gateway
:新的 API 网关,取代 Zuul。
除此之外,spring-cloud
还支持与第三方组件的整合,如:
Kubernetes
:容器编排平台的整合。Netflix组件
:Ribbon、Hystrix、Zuul 等。Zookeeper
:服务注册发现与配置中心的支持。Consul
:服务注册发现与配置中心的支持。
spring-cloud-alibaba
是阿里巴巴开源的组件,主要包含了阿里巴巴在微服务方面的若干开源产品,spring-cloud-alibaba
中的主要组件有:
Nacos
:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Dubbo
:阿里巴巴开源的一个高性能 Java RPC 框架。RocketMQ
:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。Seata
:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。Sentinel
:阿里巴巴开源产品,一个控制微服务流量的开源框架。
除此之外,spring-cloud-alibaba
还整合了Spring Cloud
与上述组件,提供了更加完善的微服务解决方案,主要包含:
Service Discovery
:包含 Nacos 与 Eureka 的发现组件。Configuration
:Nacos 配置中心组件。Messaging
:RocketMQ 消息中间件的整合。Distributed Transaction
:Seata 的分布式事务支持。Circuit Breaker
:Sentinel 的熔断与限流支持。Gateway
:与 Spring Cloud Gateway 的整合。
Spring Cloud Dubbo 从 2021.0.1.0 起已被移除出主干,不再随主干演进。