• 沒有找到結果。

本章节介绍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 对接微服务应用

相關文件