Spring Cloud应用如何接入CSE
更新!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是作为注册服务使用的,替换服务中心后不需要继续使用。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency>
修改后的依赖:
<dependency> <groupId>com.huawei.paas.cse</groupId> <artifactId>cse-solution-spring-cloud</artifactId> <version>2.3.19</version> </dependency>
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管理复杂依赖关系的技巧"。
<dependencyManagement> <dependencies> <dependency> <groupId>com.huawei.paas.cse</groupId> <artifactId>cse-dependency</artifactId> <version>2.3.19</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
将应用制作为镜像,部署到公有云,部署平台会对应用增加一些认证关系的配置,以完成对于应用的安全认证,这些过程是由部署平台自动完成的。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的方式设置这些配置信息。比如:
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
- 点赞
- 收藏
- 关注作者
评论(0)