
com.alibaba.edas.configcenter.config.ConfigService Maven / Gradle / Ivy
package com.alibaba.edas.configcenter.config;
import static com.taobao.diamond.client.impl.DiamondEnvRepo.defaultEnv;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
/**
* 提供动态配置管理服务
* Provide dynamic configuration management services
*
* @author ConfigCenter
*
*/
public class ConfigService {
/**
* 添加对dataId、group的监听,在服务端修改该配置后,客户端会使用传入的listener回调应用。
* 推荐异步处理,应用可以实现ManagerListener中的getExecutor方法,提供执行的线程池。如果为提供,则使用主线程回调,
* 可能会阻塞其他配置或者被其他配置阻塞。
*
* @param dataId
* dataId
* @param group
* group
* @param listener
* 监听器
*/
public static void addListener(String dataId, String group, ConfigChangeListenerAdapter listener) {
defaultEnv.addListeners(dataId, group, Arrays.asList(listener));
}
/**
* 对一个dataId,group同时添加多个Listener,发生配置变更后会依次回调Listener
*
* @param dataId
* dataId
* @param group
* group
* @param listeners
* 监听器列表
*/
public static void addListeners(String dataId, String group, List listeners) {
defaultEnv.addListeners(dataId, group, listeners);
}
/**
* 删除已经添加的Listenner
*
* @param dataId
* dataId
* @param group
* group
* @param listener
* 监听器
*/
public static void removeListener(String dataId, String group,
ConfigChangeListenerAdapter listener) {
defaultEnv.removeListener(dataId, group, listener);
}
/**
* 按照本地容灾 -> server -> 本地缓存的优先级获取配置。超时单位是毫秒。
*
* @param dataId
* dataId
* @param group
* group
* @param timeoutMs
* 获取超时时间
* @throws IOException
* IOException
* @return 配置内容
*/
public static String getConfig(String dataId, String group, long timeoutMs) throws IOException {
return defaultEnv.getConfig(dataId, group, timeoutMs);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy