|都已经十岁的 Apache Dubbo,还能再乘风破浪吗?( 三 )

Dubbo-go 社区 2020 年 Q2 主要目标有:

  • 发布完全对齐 Dubbo 2.7.x 的 v1.5.0 版本;
  • 发布对标 Dubbo 3.0 的 v1.6.0版本;
  • 在云原生方面继续自己的探索;
  • 继续与兄弟社区保持合作共进态势 , 扩大自身使用范围;
  • 生产实践上推进在阿里集团 , 以及更多厂家的落地 。
项目(包括子项目)目前已先后在携程、涂鸦智能和蚂蚁金服等公司生产落地 。
今年阿里集团完成 HSF 和 Dubbo 的融合后 , 项目也将在阿里集团双十一战场经受考验 。
云原生 Dubbo - Dubbo 3.0
3.0 是下一代 Dubbo 架构的代号 。 一年前 , 最开始探索 Reactive Stream 之时 , 社区也曾有过对 Dubbo 3.0的广泛讨论 。 而这一次 , 在云原生大背景下 , 3.0 代表了更全面的 Dubbo 架构升级 , 涉及到下一代 RPC 协议、全新的服务治理模型和云原生基础设施适配等 。
阿里巴巴是参与 Dubbo 3.0 开发建设的主要力量之一 , 这款始于阿里的开源项目正重新回归阿里内部落地 。
去年开始 , 阿里巴巴就已经在逐步推动以 Dubbo 替换其内部的 HSF 框架的工作 , 通过将 Dubbo 与 HSF 两个框架融为一体 , 并在此基础上发展出适应云原生架构的 Dubbo 版本 。 Dubbo 重回阿里巴巴的落地是拥抱社区、拥抱云原生、拥抱标准化的一次很好的实践 。
阿里巴巴内部 Dubbo 3.0 的落地 , 对社区也是一个重大利好 , 这一方面有利于阿里巴巴将其在 HSF 上的丰富服务治理经验回馈输出到社区 , 另一方面也将直接推动 Dubbo 云原生架构的快速演进 。 除了阿里巴巴之外 , 包括斗鱼、工商银行、爱奇艺、斗鱼等厂商也都在参与下一代 Dubbo 3.0 的建设 。
下面列出了 Dubbo 3.0 中的三个重要方向 , 具体的 Roadmap 将在接下来文章中单独说明:
  • 下一代 RPC 协议 。 新协议将提供更丰富的如 Stream、Flow Control 等内置语义 , 同时将具有更好的扩展性、网关的友好性等;
  • 基于应用粒度的服务发现机制 。 在兼顾 Dubbo 面向接口的易用性与功能性的基础上 , 解决与 Kubernetes Native Service 适配问题 , 解决大规模- 集群下的地址推送性能瓶颈问题;
  • 适配云原生基础设施的解决方案 。 这涉及到 Dubbo 服务与基础设施生命周期对接、Kubernetes Native Service 适配、适应基础设施调度的服务治理规则、适配 Service Mesh 架构的解决方案等;
接下来沿着这三个方面简要展开 。
下一代 RPC 协议
  • 专注在协议自身来说 , 下一代的协议主要聚焦在 HTTP/2、Reactive Stream、Flow Control 等方面:
  • Reactive Stream:Reactive Stream 引入 RPC , 带来更丰富的通信语义和 API 编程模型支持 , 如 Request-Stream、Bi-Stream 等;
  • HTTP/2:微服务云原生场景下 , 基于 HTTP/2 构建的通信协议具有更好的通用性和穿透性;
  • Flow Control:协议内置流控机制 , 支持类似 Reqctive Stream 的 Request (n) 流控机制 。
从解决的业务场景问题上来说 , 基于新的协议 Dubbo 在框架层面要支持智能决策的负载均衡算法、对 Mesh 和网关更友好、更容易提供多语言实现与互通等 。
  • Mesh:协议对穿透 Mesh 更友好 , 区分协议头 Metadata 与 RPC Payload , 方便完成与 Mesh 的协作 , 包括流量控制机制、应用层配置协商等;
  • 协议通用性:兼顾通用性与性能 , 支持协议能在各种设备上运行;
  • 多语言支持:如通过支持 Protobuf 提供了更完善的 跨语言服务定义 与 序列化传输的支持 。
应用级服务治理
面向接口一直以来都是 Dubbo 框架的优势 。 一方面它的易用性 , 为开发者屏蔽了远程调用的存在;另一方面面向接口的地址发现、服务治理带来了更强大的能力 , 使得整个 Dubbo 治理体系非常强大与灵活 。


推荐阅读