Spring Cloud应用接入华为云微服务CSE( 二 )


本章节通过一个实际的案例,说明 Cloud应用如何经过少量的配置修改,快速接入CSE 。Demo下载地址:码云Gitee
-提供了3个项目:
修改后的--2-cse具备如下能力和变化:
接入步骤说明
CSE为 Cloud应用提供了非常简单的接入方式,开发者只需要修改依赖关系和少量的配置,就可以启用服务中心和配置中心客户端连接功能,将 Cloud应用作为一个CSE的微服务注册到服务中心和使用动态配置能力 。
删除如下依赖,以-为例,修改-/pom.xml,-/pom.xml:
org.springframework.cloudspring-cloud-starter-eureka
删除如下依赖,以-为例,修改父pom.xml:
org.springframework.cloudspring-cloud-starter-eureka-server
增加如下依赖,以-为例,修改父pom.xml:
com.huawei.paas.csecse-solution-spring-cloud2.3.20
[可选]-已不再需要,可以删除,以-为例,修改父pom.xml,只保留-和-:
springcloud-providerspringcloud-consumer
-的-模块使用的默认对接,需要在-的.yml中增如下配置:
helloprovider:ribbon:NIWSServerListClassName: org.apache.servicecomb.springboot.starter.discovery.ServiceCombServerList
其中:
经过上面步骤,就完成了 Cloud应用接入CSE的全部整改 。开发者可以将应用打包为容器镜像,在公有云上进行部署 。另外,--2-cse项目已提供和start.sh,可以直接拷贝以便在微服务云应用平台快速构建镜像 。
体验改造后的服务
本地调试时,需要参照“补充说明”第2点,在.yml中增加认证信息 。
访问服务::7211/hello?name=World
说明:部署在华为云上时,请将:7211替换为实际的访问地址 。您可以在应用详情页面中,从“概览”中获取“外部访问地址” 。
服务目录
登录华为云,访问微服务引擎,可以在"微服务管理" > "服务目录" 查看到注册成功的两个服务以及实例信息 。
动态配置
为了演示,在中增加了如下接口
@Value(value = "http://www.kingceram.com/post/${cse.dynamic.property:null}")String value;@RequestMapping(method = RequestMethod.GET)public String dynamicProperty() {String dynamicProperty = DynamicPropertyFactory.getInstance().getStringProperty("cse.dynamic.property", "").get();return "@Value is " + value + "; Api read is " + dynamicProperty;}
并通过微服务引擎的"动态配置"增加配置项,访问:7211/hello/,得到如下結果:
@Value is property; Api read is property
修改配置项的值为其他值,得到
@Value is property; Api read is propertyChanged
@Value注入的值不会动态变化,通过API获取的值会动态变化 。Cloud使用的大量组件,包括, 等都是通过API读取的配置,这些配置项都能够动态读取到 。
Cloud还提供了@ies简化配置,但它的工作原理和@Value以及API都不同,只能够读取到.yml配置文件中的配置项,不支持动态配置 。
其他功能
该接入步骤完成了上云的第一步,只能使用服务目录和动态配置功能 。经过进一步的改造 Cloud应用才能够使用仪表盘、服务治理等功能 。
补充说明
不会往程序里面增加依赖关系,但是可以帮助开发者更好的管理依赖关系,对于解决三方软件冲突非常有用 。详细原理描述可以参考“使用maven管理复杂依赖关系的技巧" 。
com.huawei.paas.cse