All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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