Exemple #1
0
 public static void MonitorZooKeeperState()
 {
     if (_client == null)
     {
         return;
     }
     _client.MonitorZooKeeperState();
 }
Exemple #2
0
        /// <summary>
        /// 定时比较本地配置与配置中心配置的版本值
        /// </summary>
        private static void MonitorDisconfItemVersion()
        {
            try
            {
                IList <ConfigMetadataApiResult> changedList = new List <ConfigMetadataApiResult>();

                IList <ConfigMetadataApiResult> list = _disconfWebApi.GetConfigMetadatas();
                if (list == null || list.Count <= 0)
                {
                    return;
                }
                foreach (ConfigMetadataApiResult item in list)
                {
                    if (item == null)
                    {
                        continue;
                    }
                    if (!ConfigStorage.ContainsKey(item.Name))
                    {
                        ConfigStorageItem configStorageItem = CreateConfigStorageItem(item.Name, item.Type, item.UpdateTime);
                        if (!ConfigStorage.ContainsKey(configStorageItem.Name))
                        {
                            ConfigStorage.Add(configStorageItem.Name, configStorageItem);
                            changedList.Add(item);
                        }
                    }
                    else
                    {
                        ConfigStorageItem configStorageItem = ConfigStorage[item.Name];
                        if (configStorageItem != null && configStorageItem.Version != item.UpdateTime)
                        {
                            changedList.Add(item);
                            LogManager.GetLogger().Info(string.Format("ChangeItem:{0},Version_Old:{1},Version_New:{2}", item.Name, configStorageItem.Version, item.UpdateTime));
                        }
                    }
                }
                StringBuilder sbChanged = new StringBuilder();
                foreach (ConfigMetadataApiResult item in changedList)
                {
                    if (item == null)
                    {
                        continue;
                    }
                    ReloadConfigItem(item);
                    sbChanged.Append(item.Name).Append(" , ");
                }
                if (!DisconfClientSettings.DisableZooKeeper)
                {
                    _zooKeeperClient.MonitorZooKeeperState();
                }

                LogManager.GetLogger().Info(string.Format("DisconfClient.ConfigStorageManager.MonitorDisconfItemVersion,changed:{0}.items:{1}", changedList.Count, sbChanged));
            }
            catch (Exception ex)
            {
                try
                {
                    _disconfServerIsActive = false;
                    LogManager.GetLogger().Error("定时比较本地配置与配置中心配置的版本值时出现异常!", ex);
                }
                catch
                {
                    // ignored
                }
            }
        }