-
Notifications
You must be signed in to change notification settings - Fork 9
dubbo 2 cse
将 Dubbo 迁移 Spring Cloud, 主要需要解决如下几个问题:
- 将 RPC 接口定义修改为 REST 接口定义;
- 将 RPC 接口调用修改为 Feign 接口调用;
- 修改依赖关系和配置文件;
- 其他常见问题修改,包括启动类修改、解决三方软件冲突等。
Dubbo迁移Spring Cloud和HSF迁移Spring Cloud非常类似, 详细可以参考HSF迁移Spring Cloud方案分析和最佳实践。
对于多数项目,可以通过migrator一键式完成改造。在后面的章节中,会详细描述migrator是如何做的,即使对于一些特殊的情况,也可以通过给migrator扩充功能,快速满足一键式改造的要求。
使用migrator完成改造,首先需要下载本项目代码,执行
mvn clean install
会在 target 目录编译出 migrator-0.0.1-SNAPSHOT.jar。 然后将 migrator-0.0.1-SNAPSHOT.jar 和 templates 目录拷贝到一个程序运行目录,比如 D:\migrator。然后运行:
# 进入target目录或者将 migrator-0.0.1-SNAPSHOT.jar 以及 templates 目录拷贝到另外的目录
cd D:\migrator\target
java -jar migrator-0.0.1-SNAPSHOT.jar ModifyDubboFAction [PROJECT_HOME]
其中PROJECT_HOME是需要改造的项目根目录。程序运行完可以完成一键式修改,一些无法处理的情况,会打印日志,这些情况需要手工处理。比如:
2022-03-17 16:51:35,740 [ERROR] [main] - Manual processing is required. Cause is ...
- 试一试
Srping Cloud Huawei Samples提供了一个Dubbo的示例项目dubbo-demo,通过运行命令,可以将项目改造为Spring Cloud。 改造完成后,下载本地微服务引擎, 编译和运行该项目。 通过对比改造前后的差异,可以了解工具的完整运行过程。
ModifyDubboAction包含如下操作,分别完成不同的改造任务:
- ModifyDubboServiceAction
ModifyDubboServiceAction的主要功能是扫描目录下面的所有JAVA文件,识别文件是否包含 @DubboService 标签,如果存在,将其替换为 @RestController。
- ModifyDubboReferenceAction
ModifyDubboReferenceAction的主要功能是扫描目录下面的所有JAVA文件,识识别文件是否包含 @DubboReference 标签,如果存在,将其替换为 @FeignClient。
- ModifyDubboInterface2RestAction
ModifyDubboInterface2RestAction的主要功能是扫描目录下面的所有JAVA文件,首先扫描出包含 @DubboService 标签的文件,并从中解析出需要处理的 JAVA interface文件,
-
然后将 interface 文件修改为 REST 风格。
-
ModifyDubboAddBootstrapYamlAction
ModifyDubboAddBootstrapYamlAction的主要功能是在项目的 src/main/resources 目录下添加 bootstrap.yml 文件。 会在根目录,以及根目录的第一级子目录查找 src/main/resources 目录。
- ModifyDubboMainClassAction
ModifyDubboMainClassAction的主要功能是扫描目录下面的所有JAVA文件,识别文件是否包含main函数,并将相关 @EnableDubbo 逻辑改为 Spring Boot。
- ModifyDubboPomAction
ModifyDubboPomAction的主要功能是扫描目录下面的所有POM文件,删除Dubbo相关的依赖、插件,增加Spring Cloud相关的依赖、插件。
- 微服务开发框架迁移概述
- Spring Cloud Gateway迁移CSE
- Zuul迁移CSE
-
Nacos+Spring Cloud迁移CSE
- 使用migrator完成一键式改造
- migrator改造步骤详细说明
-
Eureka+Spring Cloud迁移CSE
- 使用migrator完成一键式改造
- migrator改造步骤详细说明
-
HSF迁移Spring Cloud
- 使用migrator完成一键式改造
- migrator改造步骤详细说明
-
Dubbo迁移Spring Cloud
- 使用migrator完成一键式改造
- migrator改造步骤详细说明
- 常见问题
- 为migrator项目贡献代码