Spring Cloud应用如何接入CSE

网友投稿 1139 2022-05-30

更新!CSE 现在提供了 spring-cloud-huawei 模块用于Spring Cloud服务快速接入CSE。 详情请参考帮助文档,另外官网上也有一个快速入门的demo可供参考。

.

.

.

以下为旧版内容

限时免费体验华为云微服务

本章节通过一个实际的案例,说明Spring Cloud应用如何经过少量的配置修改,快速接入CSE。

原始Spring Cloud应用-:

https://github.com/huawei-microservice-demo/SpringCloudIntegration/tree/master/springcloud-sample

该Spring Cloud应用提供了3个项目:

eureka-server提供注册发现能力。

springcloud-provider服务提供者,该服务提供了名称为HelloService的REST接口。

springcloud-consumer服务消费者,该服务也提供了名称为HelloService的REST接口,其实现通过Feign调用springcloud-provider的REST接口。

改造后的应用具备如下能力和变化:

使用CSE提供的服务中心作为注册发现服务;

使用CSE提供的配置中心作为动态配置服务,可以通过配置中心管理公共配置;

业务的其他逻辑不发生任何变化,写代码的方式也不发生变化。开发者仍然可以按照原来的开发习惯书写业务代码。

CSE为Spring Cloud应用提供了非常简单的接入方式,开发者只需要修改依赖关系和少量的配置,就可以启用服务中心和配置中心客户端连接功能,将Spring Cloud应用作为一个CSE的微服务注册到服务中心和使用动态配置能力。

修改依赖关系。

将Spring Cloud中对于earuka的依赖换成CSE的依赖。

Eureka的依赖:开发者一般会使用spring-cloud-starter-eureka。spring-cloud-starter-eureka-server是作为注册服务使用的,替换服务中心后不需要继续使用。

  org.springframework.cloud   spring-cloud-starter-eureka   org.springframework.cloud   spring-cloud-starter-eureka-server

修改后的依赖:

  com.huawei.paas.cse   cse-solution-spring-cloud   2.3.19

Consumer使用ribbon。

如果Spring Cloud应用代码中使用了Ribbon组件,它默认的实现是通过Eureka的,需要在application.yml中增如下配置:

helloprovider:   ribbon:     NIWSServerListClassName: org.apache.servicecomb.springboot.starter.discovery.ServiceCombServerList

经过上面步骤,就完成了Spring Cloud应用接入CSE的全部整改。开发者可以将应用打包为容器镜像,在公有云上进行部署。

建议开发者在pom.xml中引入依赖的dependencyManagement,以便更好的管理使用的三方件,防止冲突。

dependencyManagement不会往程序里面增加依赖关系,但是可以帮助开发者更好的管理依赖关系,对于解决三方软件冲突非常有用。详细原理描述可以参考“使用maven管理复杂依赖关系的技巧"。

              com.huawei.paas.cse       cse-dependency       2.3.19       pom       import        

将应用制作为镜像,部署到公有云,部署平台会对应用增加一些认证关系的配置,以完成对于应用的安全认证,这些过程是由部署平台自动完成的。CSE的服务中心和配置中心通过api gateway开放了REST接口,支持开发者在公网环境使用其服务,这样给开发者的线下开发带来大量的便利。为了线下使用CSE的服务中心和配置中心,开发者需要在application.yml中增加认证信息,认证信息包含AS/SK,可以从公有云帐号的"我的凭证”获取。

cse:   credentials:     accessKey: your access key     secretKey: your secret key     akskCustomCipher: default

有些开发者需要通过代理服务器访问公有云,也可以通过设置代理来实现:

cse:   proxy:     enable: true     host: your proxy server     port: your proxy server port     username: user name     passwd: password for proxy

CSE的配置是分层次的,按照优先级顺序是:

yaml配置文件 < 环境变量 < System Property < 配置中心。

如果开发者不希望将密码信息写入配置文件,也可以通过环境变量或者System Property的方式设置这些配置信息。比如:

Spring Cloud应用如何接入CSE

java -Dcse.credentials.accessKey=$ACCESS_KEY Application.jar。

立即体验:https://console.huaweicloud.com/cse/?region=cn-north-1#/cse/home

了解详情:https://www.huaweicloud.com/product/cse.html

微服务引擎

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【云享读书会 - 敏捷转型】DAY01 敏捷转型的系统方法
下一篇:使用elasticdump迁移数据到新es集群
相关文章