/// <summary> /// 获取一个监视管理器 /// </summary> /// <param name="webApi">配置中心服务接口</param> /// <returns></returns> public static WatcherManager GetWatcherManager(IDisconfWebApi webApi) { if (webApi == null) { throw new ArgumentNullException("webApi"); } string host = webApi.GetZooKeeperHost(); string rootNode = webApi.GetZooKeeperRootNode(); WatcherManager watcherManager = new WatcherManager(); watcherManager.Init(host, rootNode); return(watcherManager); }
/// <summary> /// 初始化 /// </summary> /// <param name="disconfWebApi">配置中心接口服务</param> /// <param name="assemblies">配置类所在的程序集</param> public static void Init(IDisconfWebApi disconfWebApi = null, params Assembly[] assemblies) { if (disconfWebApi == null) { disconfWebApi = new DisconfWebApi(); } _disconfWebApi = disconfWebApi; if (!DisconfClientSettings.DisableZooKeeper) { _zooKeeperClient = new ZooKeeperClient(_disconfWebApi); //向Zookeeper发送一个Watch,以便近快的拿到SyncConnected状态 WatcherManager watcherManager = new WatcherManager(_zooKeeperClient); watcherManager.WatchPath("test", "test", DisconfNodeType.Item); } DisconfClientSettings.Verify(); if (DisconfClientSettings.OnlyLoadLocalConfig) { LoadLocalConfig(); } else { try { LoadConfigItemsFromServer(); } catch (Exception ex) { string localConfigPath = GetLocalConfigPath(); bool isExistsLocalConfig = File.Exists(localConfigPath); if (!isExistsLocalConfig) { throw; } LoadLocalConfig(); LogManager.GetLogger().Error(string.Format("从配置中心获取数据加载全量数据失败,已从本地副本中加载成功({0})!", localConfigPath), ex); } } AssemblyScan(assemblies); AutoRefresh(); StartFileSystemWatcher(); }
public ZooKeeperClient(IDisconfWebApi webApi) : base(webApi) { }
public ConnectionWatcher(IDisconfWebApi webApi) { _webApi = webApi; Guid id = ZooKeeper.Id; }
/// <summary> /// 初始化 /// </summary> /// <param name="disconfWebApi"></param> /// <param name="assemblies"></param> public static void Init(IDisconfWebApi disconfWebApi = null, params Assembly[] assemblies) { ConfigStorageManager.Init(disconfWebApi, assemblies); }