dubbo中有没有方法可以获取到配置中心拿到的所有配置?
或者说与spring中的定义的properties配置合并, 自定义优先级。
当zookeeper配置发生改变时有没有办法进行监听?
不想自己去连接zk获取或者进行监听。
非常感谢。。
dubbo中有没有方法可以获取到配置中心拿到的所有配置?
或者说与spring中的定义的properties配置合并, 自定义优先级。
当zookeeper配置发生改变时有没有办法进行监听?
不想自己去连接zk获取或者进行监听。
非常感谢。。
ConfigCenterConfig configCenter = ConfigManager.getInstance().getConfigCenter().get();
DynamicConfigurationFactory factories = ExtensionLoader
.getExtensionLoader(DynamicConfigurationFactory.class)
.getExtension(configCenter.toUrl().getProtocol());
DynamicConfiguration configuration = factories.getDynamicConfiguration(configCenter.toUrl());
//获取全局配置
String globalString = configuration.getConfig(configCenter.getConfigFile(), configCenter.getGroup());
//获取应用配置
String appString = configuration.getConfig
(StringUtils.isNotEmpty(configCenter.getAppConfigFile()) ? configCenter.getAppConfigFile() : configCenter.getConfigFile(),
ConfigManager.getInstance().getApplication().get().getName()
);
System.out.println(globalString);
System.out.println(appString);
//全局配置监听
configuration.addListener("dubbo.dubbo.properties", new ConfigurationListener() {
@Override
public void process(ConfigChangeEvent event) {
System.out.println(event.getKey()+" - "+event.getValue()+" "+event.getChangeType().name());
}
});
//应用配置监听
configuration.addListener("testAPP.dubbo.properties", new ConfigurationListener() {
@Override
public void process(ConfigChangeEvent event) {
System.out.println(event.getKey()+" = "+event.getValue()+" "+event.getChangeType().name());
}
});