微服务引擎 CSE
微服务引擎 CSE
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
- API参考
- SDK参考
-
常见问题
- 使用华为云CSE注意事项
- Nacos引擎
-
ServiceComb引擎
- 如何进行本地开发和测试?
- 证书加载错误
- 无效头名称
- mesher性能损耗是多少?
- 连接服务中心提示“Version validate failed”
- 连接服务中心提示“Not enough quota”
- 如何处理开启了安全认证的ServiceComb引擎专享版开启IPv6后服务注册失败?
- 服务名重复校验范围是什么?
- 为什么一定要定义服务契约?
- 如何解决微服务应用开发过程中微服务开发框架同netty版本不匹配的问题?
- ServiceComb专享版引擎版本从1.x升级到2.x时有哪些注意事项?
- 用户业务从微服务引擎专业版迁移到微服务引擎专享版checklist
- 创建引擎提示“Duplicate cluster name”
- 创建引擎过程中处理接入地址步骤失败,提示the subnet could not be found
- 本地轻量化注册服务报错:does not match rule: {Max: 100, Regexp: ^[a-zA-Z0-9]{1,160}$|^[a-zA-Z0-9][a-zA-Z0-9_\-.]{0,158}[a-zA-Z0-9]$}"}
- SpringCloud应用连接ServiceComb引擎2.x版本配置中心失败
- 在全局配置中配置相关的配置项修改后,服务获取的配置内容未修改成功
- 获取配置失败
- 视频帮助
- 通用参考
文档首页/
微服务引擎 CSE/
最佳实践/
ServiceComb引擎/
ServiceComb引擎托管应用/
通过Spring Cloud Huawei SDK托管Spring Cloud应用/
快速接入ServiceComb引擎
链接复制成功!
快速接入ServiceComb引擎
使用Spring Cloud Huawei接入ServiceComb引擎主要步骤可以归纳为如下两个步骤:
- 增加/修改组件依赖。
- 在配置文件“boostrap.yaml”中增加ServiceComb引擎配置信息。
具体操作,请参考Spring Cloud接入ServiceComb引擎。本章节补充在实际改造过程中需要注意的一些事项,特别是组件依赖有关的注意事项。
假设原来的业务系统都是基于Maven的项目。
第一步:熟悉原业务系统pom结构
Spring Cloud应用系统的pom结构一般分三种:
- 第一种使用Spring Boot或者Spring Cloud提供的公共pom作为parent,例如:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.5.RELEASE</version> </parent>
或者:
<parent> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-build</artifactId> <version>2.2.3.RELEASE</version> </parent>
- 第二种使用项目本身的parent,不使用Spring Boot或者Spring Cloud提供的公共pom作为parent。但是在项目中,通过dependency management引入了依赖管理,例如:
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
- 还有些应用系统会混合使用第一种和第二种,既使用了Spring Boot或者Spring Cloud提供的公共pom作为parent,又通过dependency management引入了依赖管理。
第二步:修改parent和dependency management避免三方软件冲突
parent和dependency management的修改是避免三方软件冲突的关键步骤。
- 首先确定选用的Spring Cloud Huawei的版本,然后查询Spring Cloud Huawei版本对应的Spring Boot版本和Spring Cloud版本。Spring Cloud Huawei一般建议使用当前最新版本,配套的Spring Boot版本和Spring Cloud版本可以在Spring Cloud Huawei官网查询。
- 比对当前项目parent的版本与Spring Cloud Huawei配套的Spring Boot版本和Spring Cloud版本,如果当前项目的parent版本比较低,修改为Spring Cloud Huawei的版本;如果当前版本的parent版本比较高,则无需修改。
- 在当前项目的dependency management中独立引入Spring Boot、Spring Cloud、Spring Cloud Huawei的依赖管理。如果原来项目的Spring Boot或者Spring Cloud版本比较高,使用原来项目的版本;如果原来项目的版本比较低,则使用Spring Cloud Huawei的版本。需要注意依赖管理的顺序,排在前面的依赖管理会优先使用。Spring Boot、Spring Cloud的版本是基础,被这两个依赖关系管理的软件,建议都不提供额外的依赖管理,跟随社区的版本,可以有效减少冲突。这里之所以把3个依赖关系独立出来引入,是为了给以后独立升级其中一个组件提供便利。
<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>
如果业务系统集成了Spring Cloud Alibaba等依赖关系,在dependency management删除;一些已经被Spring Boot、Spring Cloud管理的不必要的依赖,也建议删除。常见的需要删除的依赖管理有:<dependencyManagement> <dependencies> <!-- 第三方扩展的依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <!-- 已经被Spring Cloud管理的依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> <version>1.4.7.RELEASE</version> </dependency> </dependencies> </dependencyManagement>
第三步:添加/删除依赖
添加的是服务注册发现、集中配置管理、服务治理相关的组件,删除的也是这些组件的第三方实现。这些功能以外的其他组件不需要变化,但需要关注Spring Boot、Spring Cloud版本升级后,这些软件可能需要配套升级。兼容性的问题通常会在编译阶段或者服务启动阶段发现。
添加依赖一般不指定版本号,把版本号交给parent和dependency management管理。
在微服务应用中引入:
<dependency> <groupId>com.huaweicloud</groupId> <artifactId>spring-cloud-starter-huawei-service-engine</artifactId> </dependency>
在Spring Cloud Gateway应用中引入:
<dependency> <groupId>com.huaweicloud</groupId> <artifactId>spring-cloud-starter-huawei-service-engine-gateway</artifactId> </dependency>
如果存在下面这些依赖,需要删除:
<!-- nacos场景 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>spring-cloud-gateway-starter-ahas-sentinel</artifactId> </dependency> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>spring-boot-starter-ahas-sentinel-client</artifactId> </dependency> <!-- eureka场景 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
通常下面的一些依赖,不需要删除:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.28</version> </dependency>