跳到主要内容

配置中心数据的获取-下

在经过章节 配置中心数据的获取-上 的讲解后,知道了在 getConfig() 方法执行了 getRemoteConfig 方法从配置中心读取到了数据

public void getConfig(){
log.info("------------- Load Link Flow Config --------------");
//读取全局配置
String remoteGeneralConfig = getRemoteConfig(true);
if (StringUtils.isNotEmpty(remoteGeneralConfig)) {
log.info("Initialize partial remote general config : {}",remoteGeneralConfig);
try {
//解析全局配置
metaDataOperation.setRule(JSON.parseObject(remoteGeneralConfig, ConfigRule.class));
}catch (Exception e) {
log.error("Initialize partial remote general config failed", e);
}
}
//读取自己服务的配置
String remoteConfig = getRemoteConfig(false);
if (StringUtils.isNotEmpty(remoteConfig)) {
log.info("Initialize partial remote service config : {}",remoteConfig);
try {
//解析自己服务的配置
metaDataOperation.setRule(JSON.parseObject(remoteConfig, ConfigRule.class));
}catch (Exception e) {
log.error("Initialize partial remote config failed", e);
}
}
}

本章节讲解如何将读取到的数据进行解析

解析配置

从配置中心得到的无论是全局的配置还是自己服务的配置,最终都是要将数据解析的

//解析全局配置
metaDataOperation.setRule(JSON.parseObject(remoteGeneralConfig, ConfigRule.class));
//解析自己服务的配置
metaDataOperation.setRule(JSON.parseObject(remoteConfig, ConfigRule.class));

配置中心存的是json格式保存,举例:

{
"generalVersionRule":"2.0",
"definiteVersionRuleList":[{"serverName":"a-service","value":"1.0"},{"serverName":"b-service","value":"1.0"}],
"generalDowngradesVersionRule":"3.0"
"generalDowngradesZoneRule":"test-zone-2",
"generalVersionWeightRule":"1=90;2=10",
"definiteVersionWeightRuleList":[{"serverName":"a-service","value":"1=90;2=10"},{"serverName":"b-service","value":"1=70;2=30"}]
}