Dubbo 迁移 Istio 改造方案汇总

2020-06-15 12:51:39 浏览数 (1)

最近,腾讯云云加社区有一些关于 Dubbo 迁移 Istio 的文章,现总结如下。

Dubbo SDK 深度改造

  • 文章地址:Dubbo on Istio 改造方案的思考
  • 摘要: 为了拥抱云原生,本文尝试罗列 dubbo 需要的改动,并基于 2.7.7 的源码实际尝试了去除 dubbo 路由和负载均衡功能。
  • 优点: 深度改造,尝试去除 dubbo 的服务治理相关功能,从Dubbo SDK上进行修改,能最大复用业务源码,并保持原有的dubbo 性能。
  • 缺点:
    • 修改了 dubbo SDK,后续可能无法与社区同步。
    • 部署到 istio 中仍然是双注册中心。

改造成 SpringBoot 项目

  • 文章地址:如何将一个 Dubbo 项目改造成一个 Service Mesh 项目?
  • 摘要: 本篇介绍如何将一个 Dubbo 项目改造成一个 SpringBoot K8S Istio 项目的全过程,实现了在不改变 Dubbo 项目整体代码结构的基础上,向 Service Mesh 云原生项目的蜕变。
  • 优点: 保留了 Dubbo 项目的整体代码结构,可以最大化利用 Istio 的服务治理能力,
  • 缺点:
    • 需要修改业务代码的 facade 层,增加 restful 注解。
    • 需要改造成 http 协议,会对访问性能产生影响。

轻量化改造

  • 文章地址:Dubbo to Istio / Dubbo Mesh 极简改造指南
  • 摘要: 通过 Dubbo 本身的能力,去除 Dubbo 的注册中心,无需改造 Dubbo SDK,无需更换 Dubbo 协议,直接使用 istio 治理 Dubbo 流量。
  • 优点: 对业务代码基本无改动。
  • 缺点:
    • 无法完整使用 istio 的服务治理能力,基于 Header 的流量管控 目前无法实现。
    • 链路追踪需要自己实现(或使用原来的)。

迁移态

  • Dubbo 应用和 Mesh,在不同集群下的应用互通,《Dubbo on Istio 改造方案的思考》 这篇文章中的 第 5 章有论述。
  • Dubbo 应用在相同集群下,通过开放 excludeOutboundPorts,excludeInboundPorts 端口,解除 sidecar 的流量劫持进行互通,在 《Dubbo 与 Istio 共生》中有描述。

0 人点赞