ZHANGYONGHAO0 2017-11-15
最近,开源社区发生了一件大事,那个全国开发使用最广的开源服务框架Dubbo低调重启维护,并且3个月连续发布了3个维护版本。这3个维护版本不仅解决了社区关心的一系列问题和需求,还让整个社区的活跃度得到了大幅提升。
Dubbo启动维护后,阿里中间件(Aliware)组建了由专职人员和RPC技术专家组成的虚拟维护团队。通过这篇文章,Dubbo的虚拟维护团队将和大家分享一些dubbo启动维护的历程、取得的成绩以及后续的规划,具体包括Dubbo社区的建设情况、当前的版本维护主线、近期roadmap及后续计划等。
Dubbo是阿里巴巴于2012年开源的分布式服务治理框架,目前已是国内影响力最大、使用最广泛的开源服务框架,在Github上的fork、start数均已破万。在过去几年Dubbo开源社区虽然一直有陆续维护,但是由于Dubbo用户群体庞大,基础维护根本无法完全满足社区的旺盛需求。随着整个阿里中间件内部技术的迅速发展,如今不仅能够保证集团及客户的系统高效运行,还能抽调更多精力将技术赋能给全社会。开源就是阿里巴巴集团在技术层面赋能的重要领域。
目前,整个阿里集团正以更高的姿态、更开放的态度拥抱开源。RocketMQ已被Apache社区接纳为顶级项目,OpenMessaging、ApsaraCache等全球化的开源项目也于云栖大会正式公布,Dubbo就是在这样的背景下被列入重点维护开源项目。
我们一起总结下Dubbo项目的进展、维护后整个社区的变化以及包括后续版本的roadmap等,同时也分享一些我们对Dubbo期待和想法。
Dubbo启动维护后我们组建了由专职人员和RPC技术专家组成的虚拟维护团队,首先组织专人对官网和使用文档进行了重新整理,后续又以社区反馈为主线发布了2.5.5等维护版本。
已发布的内容
官网发布新版
文档重新整理后发布到gitbook(对于gitbook.io国内不稳定的问题,计划于下个迭代予以解决)
09月12日2.5.5版本发布
10月12日2.5.6版本发布
11月02日2.5.7版本发布
关于三个版本包含的具体内容会在下一节详细介绍,发布时间上基本维持了一月一版本的节奏,有灵活加快的趋势,近期我们仍会保持这种节奏;发版内容将以维护升级为主基调,遵循以下思路:
优先解决社区内被反复提及的框架缺陷、吸纳开发者贡献的Pull Request
优先支持社区呼声较高的新需求、新特性
逐步完善测试、OPS、性能指标等周边基础设施,推动项目管理标准化
主动优化或提供一些必要的功能支持
本节回顾一下已经发布的3个版本的主要内容,详细版本发布记录可通过Github追踪。发版内容也体现了当前的维护思路:发版内容以维护为主,优先解决社区关注度较高问题
2.5.5版本:维护后的第一个版本,包括依赖升级和issue修复
升级了依赖包版本
以问题反馈频率和影响面排定优先级,优先解决了几个反馈最多、影响较大的一些缺陷,包括优雅停机、异步调用等
2.5.6版本:优先级较高的几个issue修复,吸纳社区的优秀Pull Request
通过跟踪PR、issue反馈,修复了一些框架缺陷
新增了Netty4通信模块、线程堆栈dump特性
2.5.7版本:阶段性完成了社区累积issue的处理,同时开始满足社区反映的新需求
解决注册中心缓存、监控阻塞rpc链路、泛化调用解析等issue
满足社区诉求
开放注册/监听ip、port的配置,以支持docker等隔离网络环境部署,参见示例;
完善注解配置形式,提供spring-boot配置形式支持;
2.5.7版本后,关注度高的一些issue基本都已得到解决,其他一些疑似问题或优先级相对较低的issue我们也会开始着手处理,另外我们会投入一定的精力开发新功能及优化代码结构。
近2~3个版本,我们计划提供以下内容的支持:
社区的反馈与需求 | 新功能 新特性 | 代码优化 |
---|---|---|
解决社区使用过程中遇到的问题或框架缺陷 吸纳社区贡献的新见解、新特性 解决文档在gitbook访问不稳定的问题 提供一些官方的基准性能测试数据 dubbo-admin等官方docker镜像 | 提供服务延迟暴露、优雅停机API接口 支持RESTFUL风格服务调用 提供netty http的支持 集成高性能序列化协议 | 路由功能优化 消费端异步功能优化;提供端异步调用支持 注册中心推送通知异步、合并处理改造 |
这些内容也在我们近期的候选需求列表中:
重构动态配置模块,动态配置和注册中心分离,集成流行的开源分布式配置管理框架
服务元数据注册与注册中心分离,丰富元数据内容
适配流行的consul etcd等注册中心方案
考虑提供opentrace, oauth2, metrics, health, gateway等部分服务化基础组建的支持
服务治理平台OPS重做,除代码、UI重构外,期望能提供更强的服务测试、健康检查、服务动态治理等特性
Dubbo模块化,各个模块可单独打包、单独依赖
集群熔断和自动故障检测能力
想了解当前版本的具体内容规划及开发进度,可关注github milestone查看详情
如果您有遇到关于Dubbo的缺陷或对Dubbo有什么建议,随时欢迎通过以下途径向社区反馈:
• github issues Dubbo使用其来跟踪实际问题的处理进度;也可作疑似缺陷的讨论分析
• github pull request 如果你有好的代码实现,欢迎可以提交到这里,我们会及时处理
• gitter讨论组,有任何使用问题、新的idea,在这里可以畅所欲言,也有各种Dubbo大牛热心解答
• google讨论组,非正式的问题讨论,和gitter类似,但方便回查历史数据
如果您有兴趣,也可以积极参与到Github issue问题追踪、gitter问题讨论中,帮助社区的使用者。我们正积极吸纳社区活跃的贡献者(代码或问题解答者)加入Dubbo组织,共同推动Dubbo的进步。作为一个项目而言,Dubbo在项目管理及开源社区运营上还有很多不足,我们也会努力向一些更优秀的开源项目靠拢,方便大家能更好的参与到项目建设中。