赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. Serverless应用引擎(新版)
  4. 操作指南
  5. 应用开发
  6. 应用迁移
  7. 将Dubbo应用平滑迁移至SAE

将Dubbo应用平滑迁移至SAE

  • 应用迁移
  • 发布于 2025-04-17
  • 0 次阅读
文档编辑
文档编辑

如果您的Dubbo应用已经部署在阿里云上,您可以将应用迁移至Serverless 应用引擎 SAE(Serverless App Engine)。本文介绍如何将应用平滑迁移到SAE。

步骤一:迁移第一个应用

本文以Demo应用演示平滑迁移。关于Demo应用的下载地址,请参见Demo。

  1. 制定应用迁移优先级。

    选择迁移需求优先级高的应用,建议从最下层Provider开始迁移。如果调用链路太复杂,难以分析,可以任意选一应用进行迁移。

  2. 在应用程序中添加依赖并修改配置。

    说明

    本文介绍的迁移方案为双注册双订阅方案。

    1. 在pom.xml文件中添加edas-dubbo-migration-bom依赖。

      <dependency>
          <groupId>com.alibaba.edas</groupId>
          <artifactId>edas-dubbo-migration-bom</artifactId>
          <version>2.6.5.1</version>
          <type>pom</type>
      </dependency>                            
    2. 在application.properties中添加SAE注册中心的IP地址。

      dubbo.registry.address = edas-migration://192.168.XX.XX:9999?service-registry=edas://127.0.XX.XX:8080,zookeeper://192.168.XX.XX:2181&reference-registry=zookeeper://192.168.XX.XX:2181&config-address=127.0.XX.XX:8848      
      重要

      如果是非Spring Boot应用,您需要在dubbo.properties或者对应的Spring配置文件中进行设置。

      参数

      说明

      edas-migration://192.168.XX.XX:9999

      多注册中心的头部可以不做修改,启动的时候,因为Dubbo会对IP和端口进行校验,如果您的日志级别为WARN及以下,您可能会收到WARN的日志,请忽略该日志。

      service-registry

      服务的注册中心地址,支持服务的多注册中心,可以注入多个注册中心地址。每个注册中心均采用标准的Dubbo注册中心格式;多个用,分隔。示例中192.168.XX.XX为ZooKeeper地址,请使用真实的ZooKeeper地址和端口。

      reference-registry

      服务订阅的注册中心地址,支持多注册或者注册到未迁移前的注册中心。

      config-address

      动态推送的地址。

    3. 其他修改。

      对于非Spring Boot的Spring应用,需要将com.alibaba.edas.dubbo.migration.controller.EdasDubboRegistryRest添加到您的扫描路径中。

  3. 本地验证。

    此处以动态配置的方式为例。

    1. 验证准备。验证前,请确保您已完成以下操作:

      • 下载ZooKeeper

      • 启动轻量级配置及注册中心

      • 下载并启动Nacos

    2. 检查服务是否成功注册。

      • 登录轻量配置中心,在服务提供者列表中查看对应的服务。

      • 登录ZooKeeper,查看服务注册和消费信息。

    3. 可选:登录Nacos,配置服务注册信息。

      说明

      如果无需动态配置,可以跳过此步骤。

      参数

      说明

      DataId

      设置为dubbo.registry.config。

      Group

      设置对应Dubbo应用的名称applicationName,如dubbo-migration-demo-server。配置信息是应用维度,所以应用名不能重复。

      配置内容

      • 应用级别

        dubbo.reference.registry=edas://127.0.XX.XX:8080   # 注册服务的注册中心地址。
        dubbo.service.registry=edas://127.0.XX.XX:8080,zookeeper:127.0.XX.XX:2181   # 订阅服务的注册中心地址。
      • 实例IP级别

        192.168.XX.XX.dubbo.reference.registry=edas://127.0.XX.XX:8080,zookeeper:127.0.XX.XX:2181
        192.168.XX.XX.dubbo.service.registry=edas://127.0.XX.XX:8080

      集群验证时建议先验证实例IP级别,再验证整个应用。

    4. 查看迁移后应用调用是否正常,查看注册中心的注册订阅关系。

      • Spring Boot 1.x版本:http://ip:port/dubboRegistry

      • Spring Boot 2.x版本:http://ip:port/actuator/dubboRegistry

      Dubbo应用迁移1

  4. 将应用部署到SAE。

    根据实际需求将应用部署到SAE。具体信息,请参见应用部署。

  5. 结果验证。

    1. 观察业务运行是否正常。

    2. 查看服务订阅监控。

      如果应用开启了Spring Boot Actuator监控功能,请访问Actuator查看此应用订阅的各服务的RibbonServerList信息。Actuator地址如下:

      • Spring Boot 1.x版本:http://ip:port/dubboRegistry

      • Spring Boot 2.x版本:http://ip:port/actuator/dubboRegistry

      Dubbo应用迁移2

      参数说明如下。

      • dubbo.orig.**:应用中配置的注册中心信息。

      • dubbo.orig.**:生效的注册中心信息。

步骤二:迁移其他所有应用

依次将所有应用迁移到SAE。具体步骤,请参见步骤一:迁移第一个应用。

步骤三:清理迁移配置

迁移完成后,删除原有的注册中心配置和迁移过程专用的依赖edas-dubbo-migration-bom。

修改对应的注册中心地址(即删除ZooKeeper的配置),保证Consumer、Provider仅从SAE订阅。方式如下。

  • 方式一:动态配置。具体步骤,请参见本地验证。

  • 方式二:手动修改。

    所有的应用修改完成后,修改应用的注册中心地址,将订阅的地址改为SAE ConfigServer。

    dubbo.registry.address = edas-migration://192.168.XX.XX:9999?service-registry=edas://127.0.XX.XX:8080,zookeeper://192.168.XX.XX:2181&reference-registry=edas://127.0.XX.XX:8080&config-address=127.0.XX.XX:8848

    reference-registry的值从zookeeper://192.168.XX.XX:2181改为edas://127.0.XX.XX:8080。修改完成后,即可部署应用。

    说明

    当应用迁移完成后,如果不再使用ZooKeeper,需要从注册中心配置中删除zookeeper://192.168.XX.XX:2181。

    长期使用旧的ZooKeeper不影响业务的稳定性,但会增加Dubbo使用注册中心的复杂性,继而导致出错率上升。推荐您在迁移完毕后,及时清理旧的ZooKeeper,并在业务量较小的时间分批重启应用。最终示例地址如下。

    dubbo.registry.address = edas://127.0.XX.XX:8080                        
相关文章

将Spring Cloud框架应用平滑迁移至SAE 2025-04-17 11:01

如果您的Spring Cloud集群(包含多个应用)已经部署在阿里云上,您可以将应用迁移至Serverless 应用引擎 SAE(Serverless App Engine)。本文介绍如何将应用平滑迁移到SAE中,以及实现基本的服务注册与发现。

将Dubbo应用平滑迁移至SAE 2025-04-17 11:01

如果您的Dubbo应用已经部署在阿里云上,您可以将应用迁移至Serverless 应用引擎 SAE(Serverless App Engine)。本文介绍如何将应用平滑迁移到SAE。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号