Skip to content

migrate cloud nacos 2 huaweicloud nacos

chengyouling edited this page Sep 25, 2024 · 2 revisions

主要迁移步骤

  • 修改pom文件。移除Spring Cloud Alibaba和Nacos相关依赖,并替换为Spring Cloud Huawei相关依赖。
  • 修改bootstrap.yml文件。将Spring Cloud Alibaba和Nacos相关配置, 修改为Spring Cloud Huawei相关配置。
  • 其他修改
    • yaml配置文件迁移
    • 网关流控迁移
    • 应用隔离和环境隔离

basic项目 提供了迁移后的应用示例,迁移过程中涉及到的POM文件修改、bootstrap.yml文件修改等内容,都可以参考这个项目。

  • dependencyManagement

<dependencyManagement>
    <dependencies>
        <dependency>
          <groupId>com.alibaba.cloud</groupId>
          <artifactId>spring-cloud-alibaba-dependencies</artifactId>
          <version>${spring-cloud-alibaba.version}</version>
          <type>pom</type>
          <scope>import</scope>
      </dependency>
    </dependencies>
</dependencyManagement>

修改为

  <dependencyManagement>
    <dependencies>
      <!-- configure user spring cloud / spring boot versions -->
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${spring-boot.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>${spring-cloud.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <!-- configure spring cloud huawei version -->
      <dependency>
        <groupId>com.huaweicloud</groupId>
        <artifactId>spring-cloud-huawei-dependencies</artifactId>
        <version>${spring-cloud-huawei.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  • dependencies

排除Spring Cloud Alibaba和Nacos相关依赖,并替换为Spring Cloud Huawei相关依赖。这了不详细描述删除那些配置。Spring Cloud Huawei 的配置比较简单, 只需要引入一个 starter 即可。 需要注意网关和微服务的 starter 不同。

微服务starter

    <dependency>
      <groupId>com.huaweicloud</groupId>
      <artifactId>spring-cloud-starter-huawei-nacos</artifactId>
    </dependency>

网关starter

    <dependency>
      <groupId>com.huaweicloud</groupId>
      <artifactId>spring-cloud-starter-huawei-nacos-gateway</artifactId>
    </dependency>

删除 Spring Cloud Alibaba和Nacos相关配置,并增加Spring Cloud Huawei相关配置。 这里不详细描述删除的内容, 增加的内容如下:

spring:
  application:
    name: basic-provider
  cloud:
    nacos:
      discovery:
        enabled: true
        server-addr: http://127.0.0.1:8848
        service: ${spring.application.name}
      config:
        enabled: true
        server-addr: http://127.0.0.1:8848
        service: ${spring.application.name}

注意:Nacos治理、路由能力适配版本大于等于1.11.0-2021.0.x/1.11.0-2022.0.x

灰度、蓝绿路由管理迁移

在微服务存在多个版本、多个实例的情况下,需要管理服务之间的路由,达到无损升级、应用拨测等业务目的。常见的路由管理场景包括灰度发布、蓝绿发布等。 Spring Cloud Huawei要使用灰度发布、蓝绿发布的能力时,添加router依赖及下发配置即可。

router依赖

    <dependency>
      <groupId>com.huaweicloud</groupId>
      <artifactId>spring-cloud-huawei-router</artifactId>
    </dependency>

路由配置

治理迁移

Spring Cloud Alibaba集成Sentinel以后,通过注解实现限流、熔断、降级等治理能力。 Spring Cloud Huawei是通过配置无侵入式实现治理,原理参考基于动态配置的流量特征治理

当项目需要使用Spring Cloud Huawei治理时,pom中添加governance依赖,删除原有的sentinel依赖,然后配置中心下发对应治理配置即可,依赖及配置参考如下:

governance依赖:

    <dependency>
      <groupId>com.huaweicloud</groupId>
      <artifactId>spring-cloud-huawei-governance</artifactId>
    </dependency>

治理能力介绍及配置参考

Clone this wiki locally