
# 其他框架改造为Spring Cloud接入ServiceComb
#### 方案概述
本文描述如何将HSF、Dubbo框架改造为Spring Cloud框架并接入ServiceComb引擎的操作。
- 应用场景 很多微服务框架只是提供了如何解决微服务运维问题的功能模块和工具，但并没有帮用户解决那些问题，用户自行解决这些问题的成本通常非常高，出于现有框架的使用成本和问题，以及对未来业务的发展是否需要选择更加合适的技术考虑，可将微服务框架进行迁移。
  
- 方案架构
  1. 将HSF、Dubbo框架改造为Spring Cloud框架。
     微服务框架HSF、Dubbo提供的主要功能是RPC框架，以及在RPC框架之上，提供相关的服务治理能力，包括注册发现、动态配置和限流熔断等。Spring Cloud提供REST框架，并在REST框架基础之上提供服务治理能力。因此实现微服务开发框架迁移主要是将RPC框架修改为REST框架，其操作主要包括两部分：
     - 将服务端的接口定义由RPC修改为REST。
     
     - 将客户端的调用方式由RPC修改为REST风格（包括RestTemplate，Feign等）。
      
     服务端的接口定义相对比较集中，客户端的使用则比较难于排查。为了尽可能减少客户端代码的排查和修改，采用Feign来实现客户端代码的替换。
     
  
  2. 将Spring Cloud+Nacos、Spring Cloud+Eureka接入到ServiceComb引擎。
     - 将Nacos、Eureka相关的依赖替换为ServiceComb引擎相关依赖。
     
     - 增加ServiceComb引擎相关配置。
     
     - Nacos、Eureka一些使用习惯的调整，比如如何规划服务配置和逻辑隔离等。
     
     
     下图以Eureka为例演示整个改造接入过程：
     ![](https://support.huaweicloud.com/bestpractice-cse/zh-cn_image_0000001515357565.png "点击放大")
     
   
 
#### 资源和成本规划
在操作前，需要的资源和成本规划见[表1]。
 表1资源和成本规划 
| 云资源   | 规格                      | 数量 | 费用                 |
|:---|:---|:---|:---|
| 微服务引擎 | 根据需要选择相应规格              | 1  | 根据选择的计费模式及规格确定相应费用 |
| 虚拟私用云 | 默认配置                    | 1  | 00.00              |
| 子网    | 默认配置                    | 1  | 00.00              |
| 安全组   | 根据需要开通入方向30100-30130等端口 | 1  | 00.00              |
   
#### 实施步骤
1. 先将HSF或Dubbo框架改造为Spring Cloud框架。其基本操作步骤为：
   1. 修改POM和项目结构。
   
   2. 服务端RPC接口修改为REST接口。
   
   3. 客户端定义Feign引用。
   
   4. 删除HSF或Dubbo配置并增加Spring Cloud配置。
   
   5. 修改启动类。
   
   
   您可以使用migrator工具一键将HSF、Dubbo等框架改造为Spring Cloud。
   - 将HSF框架改造为Spring Cloud框架详细操作指导请参考[HSF迁移Spring Cloud](https://github.com/huaweicse/migrator/wiki/hsf-2-cse)。
   
   - 将Dubbo框架改造为Spring Cloud框架详细操作指导请参考[Dubbo迁移Spring Cloud](https://github.com/huaweicse/migrator/wiki/dubbo-2-cse)。
    
2. 将Spring Cloud+Nacos、Spring Cloud+Eureka接入到ServiceComb引擎。
   1. 修改pom文件将Nacos相关的依赖替换为ServiceComb引擎相关依赖。
   
   2. 修改bootstrap.yml文件增加ServiceComb引擎相关配置。
   
   3. 调整Nacos或Eureka的使用习惯。
   
   
   您可以使用migrator工具一键将Spring Cloud+Nacos、Spring Cloud+Eureka接入到ServiceComb引擎。
   - 将Spring Cloud+Eureka接入到ServiceComb引擎的详细操作指导请参考[Eureka+Spring Cloud迁移CSE](https://github.com/huaweicse/migrator/wiki/eureka-spring-cloud-2-cse)。
   
   - 将Spring Cloud+Nacos接入到ServiceComb引擎的详细操作指导请参考[Nacos+Spring Cloud迁移CSE](https://github.com/huaweicse/migrator/wiki/nacos-spring-cloud-2-cse)。
    
 
#### 系统集成场景
对于遗留系统、单体应用等，推荐使用网关实现互访，不采用mesher、sidecar等技术。一些未改造接入的服务，可通过如下结构图，同改造的服务协作以实现渐进式的改造。
![](https://support.huaweicloud.com/bestpractice-cse/zh-cn_image_0000001515477285.png "点击放大")
#### 常见问题
- 在进行微服务框架改造过程中的常见问题及解决思路请参考[HSF/Dubbo迁移Spring Cluod常见问题](https://github.com/huaweicse/migrator/wiki/faq-hsf-dubbo)。
- 将Spring Cloud、Nacos、Eureka迁移到ServiceComb引擎的常见问题及解决思路请参考[CSE注册发现和配置管理常见问题](https://github.com/huaweicse/migrator/wiki/faq-cse)。
 
