为什么会出现
Springcloud alibaba的出现并不是横空出世,首先是springcloud在H版之前因为用到了许多Netflix公司开源的组件(像Eureka、feign、ribbon、zuul、hystrix),我们可以称之为SpringCloud Netflix版,但是现在SpringCloud Netflix许多项目进入了维护模式,官方说明,所以许多停更的组件都有了替代版,而SpringCloud Alibaba整合与开发的组件几乎已经可以完全替代之前的SpringCloud,就这样SpringCloud Alibaba就这样出现了。
发展历史
SpringCloud这套体系与Alibaba有很大的渊源,最早是阿里开源了Dubbo,当dubbo停更了时spring建立了更大的框架SpringCloud来构建微服务体系,当许多Netflix的组件停更了之后,阿里又借鉴之前的基础,开发了一套更高效的微服务框架,而且很方便上云,这就是SpringCloud Alibaba。
Dubbo
Dubbo是阿里巴巴内部使用的分布式业务框架,2012年由阿里巴巴开源。由于Dubbo在阿里内部经过广泛的业务验证,在很短时间内,Dubbo就被许多互联网公司所采用,并产生了许多衍生版本,如网易,京东,新浪,当当等等。由于阿里策略变化,2014年10月Dubbo停止维护。随后部分互联网公司公开了自行维护的Dubbo版本,比较著名的如当当DubboX,新浪Motan等。经过三年的沉寂,在2017年9月,阿里宣布重启Dubbo项目,并决策在未来对开源进行长期持续的投入。随后Dubbo开始了密集的更新,并将停摆三年以来大量分支上的特性及缺陷修正快速整合。2018.2月,阿里将Dubbo捐献给Apache基金会,Dubbo成为Apache孵化器项目。
SpringCloud
Spring Cloud 的核心思想也是基本理论基础是:
- Spring Boot
- AutoConfiguration
- 约定优于配置
Spring Cloud 并不是一个框架,也不是一个工具,而是一种规则,一种信仰。
2014-10-07 privotal 发布了第一个Spring Cloud的版本:1.0.0.M1。
2017 年初,Spring Cloud迭代到E版本,对应SpringBoot 4.x,达到最稳定的状态,各个环节的变化变慢,趋于稳定。
Spring Cloud F版和SpringBoot 2.x是双子星。
Netflix
你可能不知道Netflix,但你或许知道美剧《马可波罗》、《女子监狱》、《纸牌屋》、《黑镜》,这都是Netflix的自拍剧。
Netflix 成立于1997年,是一家在线影片租赁提供商,主要提供Netflix超大数量的DVD并免费递送,后来转型为视频租售,目前是美国最大的版权视频交易网站。
2017年11月30日,美国流媒体巨头、世界最大的收费视频网站网飞(Netflix)买下《白夜追凶》播放权,这是该公司首次买下中国内地网络电视剧版权。
随着Netflix转型为一家云计算公司,它也开始积极参与开源项目,Netflix OSS(Open Source)就是由Netflix公司主持开发的一套代码框架和库。SpringCloud 包含了非常多的组件及子框架,其中springcloud netflix就是其中一组不可忽视的组件,由netflix开发后来又并入springcloud 大家庭。
目前Netflix贡献的活跃项目包括:
- spring-cloud-netflix-eureka
- spring-cloud-netflix-hystrix
- spring-cloud-netflix-stream
- spring-cloud-netflix-archaius
- spring-cloud-netflix-ribbon
- spring-cloud-netflix-zuul
SpringCloud Alibaba
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。包含开发分布式应用微服务的必需组件,方便开发者通过Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。
2018年10月31日,Spring Cloud Alibaba正式入驻Spring Cloud官方孵化器并发布了第一个预览版本。我们知道Spring Cloud 本身其实只是一套微服务规范,并不是一个拿来即可用的框架,而 Spring Cloud Alibaba 的开源为开发者们提供了这套规范的实现方式。同时,Spring Cloud Alibaba 提供的完整的微服务组件、中文文档和本地化的开源服务提高了开发者们接入微服务的速率,并降低了后续的运维难度。
终于在经过了大约10个月的孵化器期之后,2019年7月24日Spring官方社区在一篇关于简化Spring Cloud发布系列的官方博文中宣布了Spring Cloud Alibaba正式从 Spring Cloud Incubator 孵化器毕业,成为了Spring社区的正式项目。
各版本对比
项目\版本 | SpringCloud 官方 | SpringCloud Netflix | SpringCloud Alibaba |
---|---|---|---|
分布式配置 | Spring Environment/SCC Client/Server | Archaius |
Nacos |
服务注册与发现 | Service Registry/Service Discovery | Eureka |
Nacos |
服务熔断 | SpringCloud Circuit Breaker | Hystrix |
Sentinel |
服务调用 | OpenFeign/RestTemplate | Feign |
Dubbo RPC |
服务路由 | SpringCloud Gateway | zuul |
DUbbo+Servlet |
分布式消息 | SpringCloud Stream/SCS RabbitMQ/Kafka | - | SCS RocketMQ |
消息总线 | SpringCloud Bus | - | SCB |
负载均衡 | SpringCloud LoadBalancer | Ribbon |
Dubbo LB |
分布式事务 | - | - | Seata |
包含组件
Sentinel
阿里巴巴开源产品,把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Nacos
阿里巴巴开源产品,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
RocketMQ
Apache RocketMQ™ 基于 Java 的高性能、高吞吐量的分布式消息和流计算平台。
Dubbo
Apache Dubbo™ 是一款高性能 Java RPC 框架。
Seata
阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
Alibaba Cloud OSS(商业化组件
)
阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
Alibaba Cloud SchedulerX(商业化组件
)
阿里中间件团队开发的一款分布式任务调度产品,支持周期性的任务与固定时间点触发任务。
Alibaba Cloud SMS(商业化组件
)
覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。