本章节介绍Spring Cloud如何接入CSE,使得Spring Cloud能够对接CSE,并且方便的 使用CSE提供的最常用的功能。在使用微服务引擎功能章节,会给出具体的开发指导。
本章节介绍的开发方法,可以在Spring Cloud Huawei Samples项目中找到对应的代 码,供您在开发过程中参考。
前提条件
● 已基于Spring Cloud开发好了微服务应用。
Spring Cloud微服务框架下的微服务应用开发,请参考https://spring.io/
projects/spring-cloud。
● 版本要求:Spring Cloud Huawei 1.6.0-Hoxton及以上版本。
● 本文假设您的项目使用了maven管理打包,您熟悉maven的依赖管理机制,能够 正确的修改pom.xml文件中的dependency management和dependency。
操作步骤
步骤1 在项目的“pom.xml”文件中引入依赖。
● 如果使用Spring Cloud开发微服务,引入:
<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>
推荐使用Maven Dependency Management管理项目依赖的三方软件,在项目中 引入:
<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>
开发指南 4 对接微服务应用
<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>
如果您的项目中,已经包含了上述依赖,则不需要做任何处理。
如果您的项目中使用了其他注册发现库,比如eureka,需要对项目进行适当调整,包 括:
● 删除项目中eureka相关依赖,比如:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
● 如果代码中使用了@EnableEurekaServer, 需要删除并替换为
@EnableDiscoveryClient。
说明
组件spring-cloud-starter-huawei-service-engine包含了服务注册、配置中心、服务治理、
灰度发布、契约管理等功能。其中契约管理对于Spring Cloud微服务应用的运行不是必须 的。微服务引擎对契约个数存在数量限制,当微服务应用契约个数超过限制,会注册失 败。如果遗留系统无法进行合理的拆分减少契约个数,可以排除依赖,不使用契约管理功 能。
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-service-engine</artifactId>
<exclusions>
<exclusion>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-swagger</artifactId>
</exclusion>
</exclusions>
</dependency>
步骤2 配置微服务信息。
在“bootstrap.yml”增加微服务描述信息。如果项目中没有“bootstrap.yml”,则创 建一个新的文件。
spring:
application:
name: basic-provider cloud:
servicecomb:
开发指南 4 对接微服务应用
discovery:
enabled: true
address: http://127.0.0.1:30100 appName: basic-application
serviceName: ${spring.application.name}
version: 0.0.1
String name(),这个是spring.cloud.servicecomb.credentials.cipher的名称定义,需要配置在 配置文件中。
char[] decode(char[] encrypted),解密接口,对secretKey进行解密后使用。
public class CustomCipher implements Cipher
加密解密的实现需要作为BootstrapConfiguration,首先声明:
@Configuration
public class MyCipherConfiguration { @Bean
public Cipher customCipher() { return new CustomCipher();
}}
然后增加文件 META-INF/spring.factories定义配置:
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
说明
本章节介绍的开发方法,可以在Dubbo ServiceComb Samples项目中找到对应的代 码,供您在开发过程中参考。
Dubbo未提供网关服务,在例子中使用了Spring Cloud Gateway作为网关,Spring Cloud Gateway接入CSE的说明请参考Spring Cloud接入CSE章节。
前提条件
● 已基于Dubbo开发好了微服务应用。
Dubbo微服务框架下的微服务开发,请参考https://dubbo.apache.org/zh/。
● Dubbo ServiceComb版本为1.3.6及以上版本,并且使用Spring Boot作为开发底 座。
● 本文假设您的项目使用了maven管理打包,您熟悉maven的依赖管理机制,能够 正确的修改“pom.xml”文件中的dependency management和dependency。
操作步骤
步骤1 (可选)在项目的“pom.xml”文件中引入依赖。
如果您的项目中,已经包含了如下依赖,则不需要做任何处理。
如果您的项目中使用了其他注册发现库,比如zookeeper、nacos等,可以删除这些依 赖,这个步骤不是必须的。
<dependency>
<groupId>com.huaweicloud.dubbo-servicecomb</groupId>
<artifactId>dubbo-servicecomb-solution-spring-boot</artifactId>
</dependency>
推荐使用Maven Dependency Management管理项目依赖的三方软件,在项目的
“pom.xml”文件中引入:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
开发指南 4 对接微服务应用