Photo @heyerlein文 | 方剑

背景


2014 年,Spring Boot 1.0 发布。Spring Boot 的发布绝对是 Pivotal 历史上具有里程碑意义的事件,它让我们能够非常简便地开发 Spring 应用,屏蔽了各种配置文件和底层实现,提供 AutoConfiguration,Factory Loading Mechanism, Embedded Servlet Container,Conditional Annotation 等诸多特性。目前围绕着 Spring Boot 的生态项目已经太多了,包括 Spring Cloud,Spring Cloud Gateway,Spring Initializr,Spring Cloud Stream, Spring Cloud Data Flow。周边几乎所有的第三方开源项目都创建了 Spring Boot 对应的 Starter: Kafka Starter,RabbitMQ Starter,MyBatis Starter,Dubbo Starter。
这张图可以很好地说明 Spring Boot 发布后代码的简化:
从 JetBrains 发布的 2019 年 Java 生态报告来看,Spring Boot 已经成为了最流行的 java web 框架:
https://www.jetbrains.com/lp/devecosystem-2019/java/
2016 年,阿里全面拥抱 Spring Boot,开始进行 Spring Boot 与阿里中间件的整合。开发了 spring-boot-starter-sentinel, spring-boot-starter-diamond, spring-cloud-stream-binder-metaq 等 Starter。业务团队开始尝试引用 Spring Boot 替换原先的 Webx(Spring MVC)。
Spring Cloud 是 Pivotal 推出的基于 Spring Boot 用于开发分布式应用的一款开源项目,其内部定义了分布式开发所需的规范: 服务注册/发现,服务熔断,分布式配置,服务调用,服务路由,分布式消息,消息总线等。
这些规范阿里也有对应的实现,我们决定提供基于阿里中间件的 Spring Cloud 规范实现并开源 - Spring Cloud Alibaba。

进入 Spring Cloud 孵化器


有了这个想法之后,团队开始跟 Pivotal 进行沟通。我们在 Github 上找到了 Spring Cloud Leader - Spencer Gibb 的邮箱,介绍了阿里内部的几个项目,表示想融入到 Spring 社区里。
2017 年 12 月,Spring Cloud Alibaba 顺利进入 Spring Cloud 孵化器。
一开始这个项目的名字是 spring-cloud-alibabacloud。两个 cloud 读起来有点拗口,后来去掉了最后的那个 cloud,Github 支持 rename 功能,整个过程是无感知的。现在进入 
https://github.com/spring-cloud-incubator/spring-cloud-alibabacloud 
地址还会重定向到我们的仓库。
之后,Nacos,Sentinel 和 Seata 相继开源。Nacos 是阿里巴巴软负载团队开发的 Diamond 和 Vipserver 的集合,Sentinel 是阿里巴巴高可用团队的稳定性利器,Seata 是 GTS 团队开源的分布式事务解决方案。
同时我们也把阿里云的一些服务跟 Spring Cloud 体系进行了整合,比如 OSS 对象存储,SMS 短信服务,SchedulerX 分布式任务调度,让开发者可以更方便地使用阿里云服务。

版本发布


版本发布总体比较顺利。Spring 社区在版本发布这方面跟 Apache 社区相比,没有那么严格的规范。基本上都是开发 & 测试结束后,在 Slack 上预约时间,提供版本的 Release Note,Blog,然后让 Spencer 进行 Release。Release 到 Central 后,再进行验证。
Spring Cloud Alibaba 在孵化器内一共 Release 了 3 个版本。这是每次发版对应的 Blog:
  • https://spring.io/blog/2018/10/30/spring-cloud-for-alibaba-0-2-0-released

  • https://spring.io/blog/2018/12/21/spring-cloud-for-alibaba-0-2-1-released

  • https://spring.io/blog/2019/04/19/preview-releases-of-spring-cloud-alibaba-are-available-0-9-0-0-2-2-and-0-1-2

这里不得不提一下,因为 Spring Boot 兼容性没有做好,对不同的 Spring Cloud 版本,我们都需要 release 对应的版本(0.1.x 对应 Spring Cloud Edgware,0.2.x 对应 Spring Cloud Finchley)。
2018 年在北京参加 Spring One Tour 的时候,还特地跟 Spencer 吐槽了这块兼容性问题。
参加 Spring One Tour 的当天晚上在酒店跟 Josh Long 介绍 Spring Cloud Alibaba,之后 Josh Long 制作 Bootiful Alibaba 视频:
https://spring.io/blog/2018/12/26/spring-tips-bootiful-alibaba
2019 年 4 月在西溪园区跟 Josh Long 演示 Dubbo Spring Cloud & Spring Cloud Stream RocketMQ Binder:

Spring 社区毕业


2019 月 7 月 24 日,Spring 官方宣布 Spring Cloud Alibaba 毕业,仓库迁移至 Alibaba Github OSS 下。这意味着 Spring Cloud Alibaba 是国内首个进入 Spring 社区的开源项目。
这是 Spring Cloud Alibaba 提供的 feature:
  • 服务限流降级:使用 Sentinel 进行流量控制,熔断降级以及系统保护等多个维度保护服务稳定性
  • 服务注册与发现:使用 Nacos 适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 这个客户端负载均衡组件
  • 分布式配置管理:以 Nacos 作为数据存储支持分布式系统中的外部化配置,配置更改时自动刷新
  • 事件驱动:使用 Spring Cloud Stream RocketMQ Binder 来构建事件驱动的微服务实例
  • 消息总线:使用 Spring Cloud Bus RocketMQ 连接分布式系统中的各个节点
  • 分布式事务:使用 Seata 高效并且对业务零侵入地解决分布式事务问题
  • Dubbo RPC:扩展 Spring Cloud 服务调用协议,可使用 Spring Cloud 客户端调用 Dubbo 服务
  • 阿里云 OSS 集成: 使用阿里云 OSS 服务集成 Spring Resource 资源
和 Spring Cloud Alibaba 有关的技术文章:
  • Dubbo Spring Cloud 重塑微服务治理
    https://mercyblitz.github.io/2019/04/26/Dubbo-Spring-Cloud-%E9%87%8D%E5%A1%91%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%B2%BB%E7%90%86/
  • Spring Cloud Alibaba基础教程
    http://blog.didispace.com/spring-cloud-alibaba-1/
  • Spring Cloud Alibaba 系列教程
    http://www.itmuch.com/spring-cloud-alibaba/01-nacos-install/
  • microservices-with-spring-cloud-alibaba

    https://dzone.com/articles/microservices-with-spring-cloud-alibaba

  • Spring Tips: Bootiful Alibaba

挂牌 Spring 官方


2019 月 10 月 3 日,Spring Cloud Alibaba 正式 "挂牌" Spring 官方,成为推荐的 Spring Cloud 规范实现之一。

https://spring.io/projects/spring-cloud-alibaba

Spring Cloud Alibaba 的发展历程回顾:
  • 2018 年 7 月,Spring Cloud Alibaba 正式开源,进入 Spring Cloud 孵化器。
  • 2018 年 10 月,Spring Cloud Alibaba 发布开源后的第一个版本 0.1.0 & 0.2.0 (适配 Spring Cloud Edgware & Finchley ),包含 Nacos Config, Nacos Discovery、 Sentinel 以及 OSS 4 个组件。
  • 2018 年 12 月,Spring Cloud Alibaba 发布第二个版本 0.1.1 & 0.2.1,新增 Spring Cloud Stream RocketMQ Binder 和 Spring Cloud Bus RocketMQ 组件。
  • 2019 年 4 月,Spring Cloud Alibaba 发布 Preview Release 版本 0.9.0, 0.1.2 & 0.2.2 (首次适配 Spring Cloud Greenwich ),新增 Dubbo Spring Cloud、Seata 组件。颠覆性地使用 Spring Cloud 客户端调用 Dubbo 服务
  • 2019 年 7 月,Spring Cloud 官方宣布 Spring Cloud Alibaba 毕业。
  • 2019 月 8 月,Spring Cloud Alibaba 发布毕业后的第一个版本 1.5.0, 2.0.0 & 2.1.0。新增 spring-cloud-alibaba-sentinel-gateway 模块以完善 Sentinel 对 Spring Cloud 体系 Gateway 的支持。

谁在使用 Spring Cloud Alibaba


目前已有不少企业用户在使用 Spring Cloud Alibaba,包括爱回收、东家、Acmedcare+、生学教育、联想云、凤凰网、平安科技。我们也在社区发起了 “who is using Spring Cloud Alibaba”的issue, 可 以去这个页面了解各家企业的使用场景。
https://github.com/alibaba/spring-cloud-alibaba/issues/301

致谢


感谢 Alibaba 和 Spring 社区开源的项目:
Apache Dubbo:
https://github.com/apache/dubbo

Seata:
https://github.com/seata/seata

Sentinel:
https://github.com/alibaba/sentinel

Nacos:
https://github.com/alibaba/nacos

Apache RocketMQ:
https://github.com/apache/rocketmq

Spring Cloud:
https://spring.io /projects/spring-cloud

Spring Boot:
https://spring.io/projects/spring-boot
感谢所有的 Spring Cloud Alibaba Contributors:
@fangjian0423, @flystar32, @mercyblitz, @pbting, @xiaolongzuo, @zhendong590, @zhaoyuguang, @xiejiashuai,@spencergibb, @Rivers-Shall, @chuntaojun, @slievrly, @liudaomanbu, @zkzlx, @pigxcloud, @ly641921791, @echooymxq, @mostcool, @liuxx001, @lichen782, @yunzheng1228, @tigerMoon, @wangxing-git, @pyhblacksky, @purgeyao, @lyuzb, @eacdy, @cdfive, @AbelSara, @jsbxyyx, @yanglbme, @xingfudeshi, @pengzai170, @george510257, @carlWangTao, @JevonYang, @HaojunRen, @yidadi, @wzlee, @sundong1982, @sczyh30, @panda-luo, @lujian0571, @lovepoem, @liaozan, @kaiguoyuanshuai, @justlive1, @hero-zhanghao, @codewaltz1994, @caojiele, @bluesword12350, @MaoJianwei, @JakeConnors376W,  @Harris2012 

本文作者:

方剑,花名洛夜,GitHub ID @fangjian0423,开源爱好者,阿里巴巴高级开发工程师,阿里云产品 EDAS 开发,Spring Cloud Alibaba 开源项目负责人。

有道无术,术可成;有术无道,止于术

欢迎大家关注Java之道公众号

好文章,我在看❤️

Spring Cloud Alibaba 从孵化到 挂牌 之旅相关推荐

  1. Spring Cloud Alibaba 发布第一个正式版本,顺利完成孵化!

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 相信大家对上周的 <来自 Spring Cloud 官方的消息,Spring Clou ...

  2. 说说我为什么看好Spring Cloud Alibaba

    点击蓝色"程序猿DD"关注我哟 最近对<Spring Cloud Alibaba基础教程>系列的催更比较多,说一下最近的近况:因为打算Spring Boot 2.x一起 ...

  3. Spring Cloud 加盟重量级成员Spring Cloud Alibaba,打造更符合中国国情的微服务体系...

    本周,Spring Cloud联合创始人Spencer Gibb在Spring官网的博客页面宣布:阿里巴巴开源 Spring Cloud Alibaba,并发布了首个预览版本.随后,Spring Cl ...

  4. 开放下载 | 和 4000+Java 开发者共读《Spring Cloud Alibaba 从入门到实战》

    Spring Cloud Alibaba 脱胎于阿里中间件团队内部,经受了阿里多年海量业务场景的考验,是目前最成熟.功能最丰富也最有前景的 Spring Cloud 实现.相信在未来 Spring C ...

  5. Spring Cloud 与 Dubbo 的完美融合之手「Spring Cloud Alibaba」

    很早以前,在刚开始搞 Spring Cloud 基础教程的时候,写过这样一篇文章:<微服务架构的基础框架选择:Spring Cloud 还是 Dubbo ?>,可能不少读者也都看过.之后也 ...

  6. 阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设

    转载自  阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设 本周,Spring Cloud联合创始人Spencer Gibb在Spring官网的博客页面宣布:阿里巴巴开源 S ...

  7. Spring Cloud Alibaba基础教程:与Dubbo的完美融合

    很早以前,在刚开始搞Spring Cloud基础教程的时候,写过这样一篇文章:<微服务架构的基础框架选择:Spring Cloud还是Dubbo?>,可能不少读者也都看过.之后也就一直有关 ...

  8. Spring 社区的唯一一个国产开源项目 - Spring Cloud Alibaba 毕业了

    阿里妹导读:一年多前,Java 界最近发生了一件大事,阿里开源 Spring Cloud Alibaba,并推出首个预览版.Spring Cloud 本身是一套微服务规范,并不是一个拿来即可用的框架, ...

  9. springboot dubbo引入包_Spring Cloud与Dubbo的完美融合之手「Spring Cloud Alibaba」

    很早以前,在刚开始搞Spring Cloud基础教程的时候,写过这样一篇文章:<微服务架构的基础框架选择:Spring Cloud还是Dubbo?>,可能不少读者也都看过.之后也就一直有关 ...

最新文章

  1. python模块导入
  2. Jquery ajax jsonp跨域访问 返回格式及其获取方式 并实现单点登录SSO
  3. ContrainedBox:设置尺寸
  4. python—sql语句参数化
  5. 15_多子图-Subplot、Subplot: 使用多个figures和 axes、替代解决方案:
  6. 微服务之consul(一)
  7. passwd命令提示: 鉴定令牌操作错误
  8. yum安装软件提示Another app is currently holding the yum lock
  9. 今天突然出现了Property IsLocked is not available for Login '[sa]',我太阳,下面有绝招对付它!...
  10. js实现超出一定字数隐藏并用省略号...代替,点击后又可进行展开和收起,
  11. 高等数学张宇18讲 第七讲 一元函数积分学的概念与计算
  12. 微信公众平台开发实例 php,php微信公众平台开发类实例,php公众平台实例_PHP教程...
  13. 运动会分数统计的实验报告(数组实现)
  14. Python中的对象赋值和浅拷贝,深拷贝
  15. Resilio Sync 无法获取追踪器列表 解决方法
  16. 《The Wiley Handbook of Human Computer Interaction》翻译(冰山一角)
  17. KMP算法(快速找出字串)
  18. gridsearchcv参数_随机森林算法参数解释及调优
  19. Python将图片转换为字符画
  20. 新浪nbsp;UTnbsp;将于nbsp;6月30日起停止服务

热门文章

  1. 魔兽争霸3冰封王座英雄以及兵种语言
  2. commons-logging 分析之: org.apache.commons.logging.impl.SimpleLog
  3. OAuth 2.0 安全案例回顾
  4. Introduction of IoT(0)
  5. python数据分析相关流程名词介绍
  6. c语言的匿名函数的作用域,匿名函数、函数作用域
  7. c语言工程师常用面试题,这些常用的9个嵌入式工程师常见面试题你会不会?
  8. 2100年彻底颠覆世界的“十大未来科技”
  9. KDDCUP99数据集处理(Keras)
  10. css习题(如何用html和css画三角形(等腰和直角))