文档首页 > > 开发指南> 微服务开发指南> 对接微服务应用>

Spring Cloud接入CSE

Spring Cloud接入CSE

分享
更新时间:2021/03/29 GMT+08:00

本章节介绍Spring Cloud如何接入CSE,使得Spring Cloud能够对接CSE,并且方便的使用CSE提供的最常用的功能。在使用微服务引擎功能章节,会给出具体的开发指导。

本章节介绍的开发方法,可以在Spring Cloud Huawei Samples项目中找到对应的代码,供您在开发过程中参考。

前提条件

  • 版本要求:Spring Cloud Huawei 1.5.1-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>
              <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。

  2. 配置微服务信息。

    “bootstrap.yml”增加微服务描述信息。如果项目中没有“bootstrap.yml”,则创建一个新的文件。

    spring:
      application:
        name: basic-provider
      cloud:
        servicecomb:
          discovery:
            enabled: true
            address: http://127.0.0.1:30100
            appName: basic-application
            serviceName: ${spring.application.name}
            version: 0.0.1
            healthCheckInterval: 30
          config:
            serverAddr:  http://127.0.0.1:30113
            watch:
              delay: 10000

  3. (可选)配置AK/SK。

    如果使用微服务引擎专业版,需要配置AK/SK;如果使用微服务引擎专享版,不需要配置AK/SK,可以跳过这个步骤。

    AK/SK在“bootstrap.yml”中配置,默认提供明文配置,支持用户自定义加密存储。

    • 明文方法,在“bootstrap.yml”文件中增加配置。
      spring: 
        cloud: 
          servicecomb: 
            credentials:
              enabled: true
              accessKey: AK
              secretKey: SK
              akskCustomCipher: default
              project: 项目名称
    • 自定义实现
      1. 首先实现接口“com.huaweicloud.common.util.Cipher”,里面有两个方法:
        • String name(),这个是servicecomb.credentials.akskCustomCipher的名称定义,需要配置在配置文件中。
        • char[] decode(char[] encrypted),解密接口,对secretKey进行解密后使用。
        public class CustomCipher implements Cipher

        加密解密的实现需要作为BootstrapConfiguration,首先声明:

        @Configuration
        public class MyAkSKCipherConfiguration {
          @Bean
          public Cipher customCipher() {
            return new CustomCipher();
          }
        }

        然后增加文件 “META-INF/spring.factories”定义配置:

        org.springframework.cloud.bootstrap.BootstrapConfiguration=\
        com.huaweicloud.common.transport.MyAkSKCipherConfiguration
      2. 自定义完成,即可在“bootstrap.yaml”文件中使用新增加的解密算法:
        spring:
          cloud:
            servicecomb:
              credentials:
                enabled: true
                accessKey: AK
                secretKey: SK
                akskCustomCipher: 自定义算法名称
                project: 项目名称

  4. (可选)配置RBAC。

    使用微服务引擎专享版,并且启用了RBAC,需要配置,其他场景可以跳过这个步骤。

    微服务引擎开启了RBAC认证之后,所有调用的API都需要先获取token才能调用,认证流程请参考服务中心RBAC说明

    使用RBAC首先需要从微服务引擎获取用户名和密码,然后在配置文件中增加如下配置:

    spring:
      cloud:
        servicecomb:
          credentials:
            account:
              name:用户名
              password:密码

    使用微服务引擎专业版,不能使用watch功能,需要在配置文件里面关闭,否则会周期性打印错误日志。服务中心设置watch=false。

    spring:
      cloud:
        servicecomb:
          discovery:
            watch: false

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区论坛频道来与我们联系探讨

智能客服提问云社区提问