-
Notifications
You must be signed in to change notification settings - Fork 224
migrate cloud nacos 2 huaweicloud serviceomb
- 修改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>aliyun-spring-boot-dependencies</artifactId>
<version>{project-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-bom</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-service-engine</artifactId>
</dependency>
网关starter
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-service-engine-gateway</artifactId>
</dependency>
删除 Spring Cloud Alibaba和Nacos相关配置,并增加Spring Cloud Huawei相关配置。 这里不详细描述删除的内容, 增加的内容如下:
spring:
application:
name: basic-provider
cloud:
servicecomb:
discovery:
enabled: true
watch: false
# address: https://cse.cn-south-1.myhuaweicloud.com
address: http://127.0.0.1:30100
appName: basic-application
serviceName: ${spring.application.name}
version: 0.0.1
healthCheckInterval: 30
config:
# serverAddr: https://cse.cn-south-1.myhuaweicloud.com
serverAddr: http://127.0.0.1:30113
fileSource: provider.yaml
watch:
delay: 10000
# Configure AK/SK credentials if needed. Default not enabled.
credentials:
enabled: false
accessKey: your ak
secretKey: your sk
akskCustomCipher: defau
Nacos通过data-id可以指定yaml格式的配置文件。 而CSE第一代引擎只支持key-value的配置,第二代引擎支持更加丰富的配置格式。 本文说明如何用一代引擎提供yaml格式的文件配置。 二代引擎上线后可以直接使用yaml格式 ,就不需要这个方式了。
spring:
cloud:
servicecomb:
config:
fileSource: configruation1.yaml,configruation2.yaml
bootsrap.yml文件中指定上述配置项, 每个fileSource对应配置中心的一个key,建议以yaml文件名作为key名,例子中定义了两个key:configruation1.yaml和configruation2.yaml 。 然后需要在配置中心录入两个key对应的yaml内容。
Spring Cloud Alibaba集成Sentinel以后, 可以通过实现一个 GlobalFilter, 集成sentinel的功能。 Spring Cloud Huawei也可以使用基于动态配置的流量特征治理。 基本开发流程也是
## rate limiting configuration
servicecomb:
matchGroup:
allOperation: |
matches:
- apiPath:
prefix: "/"
rateLimiting:
allOperation: |
rate: 100
流控规则也可以统一放到配置文件,通过配置中心下发。 参考“yaml配置文件迁移”章节的说明。
Spring Cloud Alibaba的Nacos有namespace和group等概念支持逻辑隔离, Spring Cloud Huawei 也支持应用隔离和环境隔离,不同的应用和环境是无法相互发现的,配置也支持不同的下发粒度。配置项:
server:
env: production # 默认为空, 可以配置 production, testing, development等
spring:
application:
name: basic-provider
cloud:
servicecomb:
discovery:
appName: basic-application # 应用名称
serviceName: ${spring.application.name}
-
使用Spring Cloud Huawei功能
-
使用服务治理
-
生态集成
-
迁移改造问题
-
配置参考
-
优秀实践
-
常见问题