热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

阿里巴巴重启微服务开源框架Dubbo

阿里巴巴重启原开源微服务框架–DubboDubbo近期在开源软件平台上的活跃–commit-activity2012年,阿里巴巴在GitHub上开源了基于Java的分布式服务治理框

阿里巴巴重启原开源微服务框架 – Dubbo

《阿里巴巴重启微服务开源框架 - Dubbo》 Dubbo

近期在开源软件平台上的活跃 – commit-activity

《阿里巴巴重启微服务开源框架 - Dubbo》

2012 年,阿里巴巴在 GitHub 上开源了基于 Java 的分布式服务治理框架 Dubbo,之后它成为了国内该类开源项目的佼佼者,许多开发者对其表示青睐,同时,先后有不少公司在实践中基于 Dubbo 进行分布式系统架构。目前在 GitHub 上,它的 fork、star 数均已破万。
今年 9 月底,同为阿里开源的项目 RocketMQ 被 Apache 社区接纳为顶级项目;10 月中旬,OpenMessaging、ApsaraCache 等全球化开源项目在阿里云栖大会正式公布;同时,Dubbo 也被列入重点维护开源项目,期望继续保持快速发展的态势。
阿里这一系列开源项目的成绩,让人们看到了它对于开源这件事的重视,重启维护 Dubbo 的背后,有什么样的思考呢?InfoQ 就此采访了 Dubbo 负责人、阿里巴巴中间件高级技术专家罗毅。

InfoQ:为什么重启维护?有哪些因素在驱动着?

罗毅:Dubbo 自开源以來,深受国内友商和开源爱好者的青睐,虽然一直陆续在维护,但是由于 Dubbo 用户群体庞大,日常维护根本无法完全满足社区的旺盛需求。随着集团内部技术水平的迅速发展,如今不仅能够保证集团及客户的系统高效运行,还能抽调更多精力将技术赋能给全社会。

开源就是阿里巴巴集团在技术层面赋能的重要领域。阿里巴巴中间件团队今后不仅要聆听社区的声音,及时修复问题,及时合并优秀的 pull request,还会力争将 Dubbo 打造成有国际影响力的 RPC 框架。
从集团层面看,阿里为国内甚至国际开源社区贡献了大量优秀开源项目,如大家熟知的 RocketMQ、JStorm、Fastjson、Dubbo、Weex 等。在今年的云栖大会上,阿里集团公开宣布了将加大技术投入、拥抱开源的发展策略。正是由于以上几个原因,阿里巴巴中间件团队决定 Dubbo 的下一步计划是持续发展,并走向国际化。

InfoQ:我们知道阿里内部现在基本上没有在使用 Dubbo,而是用了 Dubbo 之后开发的第三代 RPC 服务框架 HSF(High-speed Service Framework),那现在还将 Dubbo 重启维护,大家不免疑惑。

罗毅:Dubbo 和 HSF 都是阿里巴巴集团自研的 RPC 服务框架,在不同时期都很好的支持了集团业务的发展。目前,HSF2 主要服务于集团内部业务,而 Dubbo2 主要以开源的形式服务社会,它们之间的关系与 Google 内部使用的 Stubby 和开源的 gRPC 类似。

从功能及使用方式上来说,HSF2 和 Dubbo2 都是十分优秀的 RPC 框架,都能很好地满足搭建分布式服务化系统的诉求。内部坚持使用 HSF2 而不是开源版本的 Dubbo2 与业务属性和规模有关。

此外也出于以下几方面的考虑:内部统一技术框架、统一运维方面的诉求,应用迁移成本,内部服务注册发现、配置推送以及链路追踪等外围系统的集成度等。总的来说,HSF2 在服务治理、超大规模集群、多机房几个方面比 Dubbo2 更有优势,并且在使用层面保持了对 Dubbo2 的兼容性。
为什么我们还要重启 Dubbo 的维护呢?
道理和 Google 开源 gRPC 是一样的。开源不仅仅是赋能社会的方式,我们也可以通过社区反馈提升产品和技术能力。

Dubbo2 作为一款优秀的开源产品,由于面向的用户群体非常广泛,这就决定了它的设计原则强调扩展性、使用轻量、以及对开源外围系统和协议的适配。通过开源社区的建议,目前 Dubbo 已经具备了一些特有功能,例如对 REST 的支持和对 Spring Boot 的集成。

值得注意的是,目前负责 Dubbo 的团队和内部负责 HSF 的是同一个团队,在聆听外部用户反馈之余,我们也会把大规模领域里的服务运维经验反哺回 Dubbo 社区,形成良性循环,做到真正意义上的内外统一。

InfoQ:那这么多年过去了,现在 Dubbo 在同类型项目中还存在优势吗?

罗毅: Dubbo 目前在 GitHub 上有超过 12000 个 star 和超过 10000 的 fork 数,仍然是国内影响力最大的开源项目之一。这其中有两个重要因素,一个是 RPC 领域相对成熟,自 Dubbo 开源的第一天起,框架里已经融合了阿里巴巴服务化改造进程中沉淀下来的诸多宝贵经验。

其二是 Dubbo 设计上十分提倡可扩展性,在框架内置功能不能满足业务诉求甚至过时的情况下,用户可以选择自行扩展。这一点,从友商给我们提交来的 pull request 中可以明显感受到,优秀的框架设计本身就可以很好的支持用户千变万化的需求。

Dubbo 维护重启后,3 个月内连续发布 3 个维护版本,不仅修复了优雅停机、注解配置等一些框架缺陷,还新增了 Netty4 通信模块和线程堆栈 dump 特性等。在框架稳定性上已经有了大幅提升,今后 Dubbo 将持续保持快速迭代更新,以满足用户的各种需求。

InfoQ:如您所说,这个开源项目,很多代码贡献者和框架采用者其实提交了不少有意义的反馈,近期 Dubbo 官方一连给出的这三个版本更新,其中意义最大、大家最想看到的更新内容是什么呢?

罗毅: 的确,作为国内使用面最广的服务框架的代表,很多用户都贡献了在使用过程中发现的问题和建议。我们目前优先级最高的任务就是在其中遴选社区关注度最高的问题和建议优先给予支持,其中包括 issue 的修复、第三方依赖的升级、新技术新规范的适配、以及功能上的优化等。

已经发布的版本中我们筛选了社区反馈的框架缺陷、pull request 等,按照优先级顺序修复,保证框架的可用性和稳定性,并同时更新了主页 (http://dubbo.io/) 和文档 (https://www.gitbook.com/@dubbo)。最近即将发布的版本中完善了注解形式的配置、Docker 环境中部署的问题等几个社区呼声较高的需求。
目前团队最大的任务就是活跃社区,聆听用户的声音,已经发布的三个版本以及未来的几个维护版本都是围绕这个话题进行。
InfoQ:阿里对 Dubbo 接下来的发展有怎样的计划?能否给大家一个清晰的视图?

罗毅: 主力开发以阿里巴巴中间件团队为主,优先吸纳集团内部对 Dubbo 开源有热情的开发同学,同时积极与国内大量使用 Dubbo 框架的友商联系。一方面是合并大家的建议,对呼声最高的建议进行性能提升,另一方面是寻求共建开源项目的资源。总的来说,项目方面会以阿里内部专门的团队为主,并积极发展社区中的 committer。

在活跃社区的前提下,我们会继续在 Dubbo 框架现代化、国际化这两个大的方向上进行探索。现代化方面主要是考虑到目前微服务架构以及容器化日渐流行的大趋势,Dubbo 作为 RPC 框架如何很好地融入其中,成为其生态体系中不可或缺的一个组件。

这里就不得不提到目前的一些文章在谈到微服务的时候总是拿 Spring Cloud 和 Dubbo 来对比,需要强调的是 Dubbo 未来的定位并不是要成为一个微服务的全面解决方案,而是专注在 RPC 领域,成为微服务生态体系中的一个重要组件。至于大家关注的微服务化衍生出的服务治理需求,我们会在 Dubbo 积极适配开源解决方案,甚至启动独立的开源项目予以支持。

对于国际化方面的思考是虽然 Dubbo 在 GitHub 上非常受欢迎,但是受众主要来自国内各友商以及个人开发者,希望将来能够将用户拓展到全球,代表国人在 RPC 领域与 gRPC、Finagle 等竞争。

官网:http://dubbo.io/
源码:https://github.com/alibaba/dubbo


推荐阅读
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 有意向可以发简历到邮箱内推.简历直达组内Leader.能做同事的话,内推奖励全给你. ... [详细]
  • 前后端分离的企业级微服务架构microservices-platformzlt-microservices-platformgit地址:https:gitee.co ... [详细]
  • 都说Python处理速度慢,为何月活7亿的 Instagram依然在使用Python?
    点击“Python编程与实战”,选择“置顶公众号”第一时间获取Python技术干货!来自|简书作者|我爱学python链接|https:www.jian ... [详细]
  • java程序员_9大行为导致Java程序员薪资过低, 你有几个?
    Java程序员薪水有高有低,有的人一个月可能拿30K、50K,有的人可能只有2K、3K。同样有五年工作 ... [详细]
  • 阿里首席架构师科普RPC框架
    RPC概念及分类RPC全称为RemoteProcedureCall,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程 ... [详细]
author-avatar
L呆头_383
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有