示例#1
0
        /// <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);
        }
示例#2
0
        /// <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();
        }
示例#3
0
 public ZooKeeperClient(IDisconfWebApi webApi)
     : base(webApi)
 {
 }
 public ConnectionWatcher(IDisconfWebApi webApi)
 {
     _webApi = webApi;
     Guid id = ZooKeeper.Id;
 }
示例#5
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="disconfWebApi"></param>
 /// <param name="assemblies"></param>
 public static void Init(IDisconfWebApi disconfWebApi = null, params Assembly[] assemblies)
 {
     ConfigStorageManager.Init(disconfWebApi, assemblies);
 }