Apache Dubbo接入服务网格 两种模式这样选

2026-03-25 0 862

概述

本文档提供 Dubbo 与 Mesh(服务网格)集成的完整解决方案。核心结论:Dubbo 支持两种服务网格集成模式——Proxy 模式()和 模式,推荐使用 模式以获得更低延迟和更简化的架构。本文基于 Dubbo 官方文档和社区最佳实践编写,涵盖架构原理、部署步骤和迁移方案。

一、Dubbo Mesh 架构概览

Dubbo Mesh 是 Dubbo 在云原生背景下的微服务整体解决方案,核心目标是实现 Dubbo 服务与 体系的打通,使 Dubbo 应用能够无缝接入 Istio 等主流服务网格产品 。

1.1 核心组件

控制面:采用 Istio 作为统一控制面,提供 适配、服务发现、证书管理、可观测性、流量治理等能力

数据面:Dubbo 应用实例作为数据面组件,支持两种部署模式

1.2 两种部署模式对比

特性 Proxy 模式() 模式
部署架构 Dubbo + Envoy 同 Pod 部署 Dubbo 独立部署
通信方式 流量经 Envoy 代理 进程间直接通信
控制面交互 Envoy 通过 xDS 与控制面交互 Dubbo SDK 直接通过 xDS 交互
性能损耗 存在额外代理损耗 无额外损耗
适用场景 多语言、平滑升级需求 性能敏感、遗留系统迁移
协议要求 建议使用 /gRPC/REST 任意协议

二、Proxy 模式集成方案

2.1 架构原理

在 Proxy 模式下,Dubbo 与 Envoy 部署在同一个 Pod 中 :

Dubbo 只提供业务 API 和 RPC 通信能力

地址发现、负载均衡、路由寻址等服务治理能力下沉到 Envoy

控制面通过 xDS 协议与 Envoy 进行配置分发

2.2 部署要求

版本,通信层选用 、gRPC 或 REST 等 HTTP 协议

集群已安装 Istio,并启用 自动注入

命名空间已打上 istio-= 标签

2.3 关键配置要点

1. 禁用传统注册中心

dubbo..=N/A

2. 配置 映射

确保 名称与 Dubbo 应用名称(dubbo. 中定义)保持一致

3. 端服务引用指定 应用名

@( = "1.0.0",  = "dubbo--mesh-", lazy = true)

4. 配置健康检查探针

:
  :
    path: /live
    port: 22222
  : 10
  : 5
:
  :
    path: /ready
    port: 22222
  : 5
  : 5
:
  :
    path: /
    port: 22222
  : 30
  : 10

> 探针使用 Dubbo QOS 模块的 HTTP 服务(默认端口 22222),需添加注解 .istio.io/s: "false" 防止 Istio 重写 HTTP 探针

三、 模式集成方案(推荐)

3.1 架构原理

模式下,Dubbo 进程独立部署并直接通信,通过 xDS 协议直接与 Istio 控制面交互 。该模式在 Dubbo 3.1 版本中正式引入 。

3.2 核心优势

无性能损耗:无 代理中转,适用于性能敏感应用

架构简化:生命周期管理更简单,易于运维部署

环境兼容性广:适用于几乎所有部署环境,不受流量拦截条件限制

平滑迁移:更有利于遗留系统的渐进式迁移

3.3 完整部署步骤

前置准备

1. 安装

2. 安装 (或使用现有 集群)

3. 安装 Istio(需开启 first-party-jwt 支持)

curl -L  | sh -
cd istio-1.xx.x
 PATH=$PWD/bin:$PATH
  --set =demo --set ..=first-party-jwt -y

> 此配置参数为必需,否则将导致客户端认证失败

步骤一:准备示例代码

使用 Dubbo 官方示例仓库:

git clone 
cd dubbo-/dubbo--xds

步骤二:构建镜像

# 构建  镜像
cd dubbo--xds-/
 build -t /dubbo-demo:dubbo--xds-.0.1 .
# 构建  镜像
cd ../dubbo--xds-/
 build -t /dubbo-demo:dubbo--xds-.0.1 .

步骤三:创建命名空间

 apply -f 
 dubbo-demo

步骤四:部署

cd dubbo--xds-/src/main//k8s
 apply -f .yml
 apply -f .yml

的 配置示例:

: apps/v1
kind: 
:
  name: dubbo--xds-
  : dubbo-demo
spec:
  : 2
  :
    :
      app: dubbo--xds-
  :
    :
      :
        app: dubbo--xds-
    spec:
      :
name: 
          image: /dubbo-demo:dubbo--xds-.0.1
          ports:
: 50052
          env:
name: 
              :
                :
                  : .

步骤五:部署

cd dubbo--xds-/src/main//k8s
 apply -f .yml

步骤六:验证调用

查看 日志确认调用成功:

 logs -f /dubbo--xds-

预期输出:

: hello, xDS ! from host: 172.17.0.5
: hello, xDS ! from host: 172.17.0.6

3.4 xDS 服务发现原理

Apache Dubbo服务网格集成

模式下,Dubbo 以注册中心模式对接 xDS:

节点发现采用服务自省模型

负载均衡和路由配置通过 动态运行时配置传入

构建 时将配置参数传入配置地址

3.5 证书管理(mTLS)

在零信任架构下,Dubbo 支持基于 xDS 的 SDS( )进行证书管理 :

采用 ( For )标准

ID 格式:://<>/ns/<>/sa/<>

Istio 通过环境变量 注入信任域信息

证书签发流程:

1. 创建 RSA 私钥

2. 构建 CSR 模板

3. 自签名 CSR 生成证书

4. 创建 储存 CA 证书和私钥

四、控制面选型与扩展

4.1 推荐使用 Istio

Dubbo Mesh 不绑定特定控制面,支持所有支持 xDS 协议的产品(Istio、、Kuma 等)。如果 Istio 完全满足治理诉求,采用 Istio 为首选方案 。

4.2 接入 Dubbo 定制控制面

若 Istio 模式下部分 Dubbo 能力受限,可接入 Dubbo 社区基于 Istio 的定制版本控制面,以获得:

更多 Dubbo 原生能力支持

更好的性能体验

五、老系统迁移方案

5.1 注册中心数据同步

对于已使用 、Nacos 等注册中心的 Dubbo 应用,迁移到 Mesh 架构需要解决数据同步问题。Dubbo Mesh 通过地址同步机制实现传统注册中心与 服务发现体系的打通 。

5.2 协议通信

对于仍使用 协议的应用,可通过 Mesh 实现协议转换,使 流量在 Mesh 架构中正常流转 。

5.3 协议升级建议

强烈建议将应用升级到 并使用 协议

完全兼容 gRPC

支持 -、 等通信模型

可运行于 HTTP/1 和 HTTP/2

七层通信信息可被服务网格识别,提供更全面的云原生能力

若使用 和原生 Dubbo 协议通信,服务网格仅能拦截 TCP 四层流量,治理能力受限 。

六、可视化与管理

6.1 Dubbo Admin

Dubbo Admin 是 Dubbo 集群的可视化控制台,兼容所有 、Mesh 和非 Mesh 架构部署 。

6.2 Istio 生态工具

也可使用 Istio 官方推荐的可观测性工具(Kiali、、)管理 Dubbo Mesh 集群 。

Q1: 模式需要修改业务代码吗?

不需要。 模式下业务代码无需修改,仅需调整注册中心配置(设为 N/A)并确保应用名与 名一致。

Q2:Proxy 模式下的性能损耗具体多大?

性能损耗取决于网络拓扑复杂度,在复杂调用链中损耗更明显。对于性能敏感应用,推荐使用 模式。

Q3:是否必须使用 Istio?

不必须。Dubbo Mesh 支持所有 xDS 协议的控制面(如 、Kuma),但 Istio 是社区推荐且测试最充分的方案。

Q4:Dubbo 2.x 应用能否直接接入 Mesh?

可以。Dubbo 2.x 可通过 Mesh 实现协议转换接入,但功能受限。推荐升级至 Dubbo 3.x 并使用 协议获得完整能力。

参考资料

1. Dubbo 官方文档 – 服务网格

2. Dubbo 官方文档 – 部署方案

3. Dubbo Mesh 实践(阿里云开发者社区)

4. Cloud – How to Dubbo into Mesh

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 行业资讯 Apache Dubbo接入服务网格 两种模式这样选 https://www.7claw.com/2827007.html

七爪网源码交易平台

相关文章