Esempio n. 1
0
        public TestBase()
        {
            IServiceCollection services = new ServiceCollection();

            services.AddNacos(configure =>
            {
                configure.DefaultTimeOut  = 8000;
                configure.ServerAddresses = new System.Collections.Generic.List <string> {
                    "http://localhost:8848",
                };
                configure.AccessKey = "";
                configure.SecretKey = "";

                // configure.Namespace = "";
                configure.Namespace = "f47e0ae1-982a-4a64-aea3-52506492a3d4";
                configure.UserName  = "******";
                configure.Password  = "******";
                configure.EndPoint  = "acm.aliyun.com";
            });

            IServiceProvider serviceProvider = services.BuildServiceProvider();

            _namingClient = serviceProvider.GetService <INacosNamingClient>();
            _configClient = serviceProvider.GetService <INacosConfigClient>();
        }
        public NacosConfigurationProvider(NacosConfigurationSource configurationSource)
        {
            _configurationSource = configurationSource;

            _parser = configurationSource.NacosConfigurationParser ?? JsonConfigurationStringParser.Instance;

            _client = new NacosMsConfigClient(NullLoggerFactory.Instance, new NacosOptions
            {
                ServerAddresses = configurationSource.ServerAddresses,
                Namespace       = configurationSource.Tenant,
                AccessKey       = configurationSource.AccessKey,
                ClusterName     = configurationSource.ClusterName,
                ContextPath     = configurationSource.ContextPath,
                EndPoint        = configurationSource.EndPoint,
                DefaultTimeOut  = configurationSource.DefaultTimeOut,
                SecretKey       = configurationSource.SecretKey,
                Password        = configurationSource.Password,
                UserName        = configurationSource.UserName,
                ListenInterval  = 5000
            });

            _client.AddListenerAsync(new AddListenerRequest
            {
                DataId    = _configurationSource.DataId,
                Group     = _configurationSource.Group,
                Tenant    = _configurationSource.Tenant,
                Callbacks = new System.Collections.Generic.List <Action <string> >
                {
                    x => CallBackReload(x)
                }
            });
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConfigServerConfigurationProvider"/> class.
 /// </summary>
 /// <param name="settings">the configuration settings the provider uses when accessing the server.</param>
 /// <param name="httpClient">a HttpClient the provider uses to make requests of the server.</param>
 /// <param name="logFactory">optional logging factory</param>
 public ConfigNacosConfigurationProvider(ConfigNacosClientSettings settings, INacosConfigClient httpClient, ILocalConfigInfoProcessor processor, ILoggerFactory logFactory = null)
 {
     _settings      = settings ?? throw new ArgumentNullException(nameof(settings));
     _client        = httpClient ?? throw new ArgumentNullException(nameof(httpClient));
     _logger        = logFactory?.CreateLogger <ConfigNacosConfigurationProvider>();
     _loggerFactory = logFactory;
     _configuration = new ConfigurationBuilder().Build();
 }
        public NacosConfigurationProvider(NacosConfigurationSource configurationSource)
        {
            _configurationSource = configurationSource;

            _parser = configurationSource.NacosConfigurationParser;

            _client = new NacosMsConfigClient(NullLoggerFactory.Instance, new NacosOptions
            {
                ServerAddresses = configurationSource.ServerAddresses,
                Namespace       = configurationSource.Tenant,
                AccessKey       = configurationSource.AccessKey,
                ClusterName     = configurationSource.ClusterName,
                ContextPath     = configurationSource.ContextPath,
                EndPoint        = configurationSource.EndPoint,
                DefaultTimeOut  = configurationSource.DefaultTimeOut,
                SecretKey       = configurationSource.SecretKey,
                Password        = configurationSource.Password,
                UserName        = configurationSource.UserName,
                ListenInterval  = 20000
            });

            if (configurationSource.Listeners != null && configurationSource.Listeners.Any())
            {
                var tasks = new List <Task>();

                foreach (var item in configurationSource.Listeners)
                {
                    tasks.Add(_client.AddListenerAsync(new AddListenerRequest
                    {
                        DataId    = item.DataId,
                        Group     = item.Group,
                        Tenant    = configurationSource.Tenant,
                        Callbacks = new System.Collections.Generic.List <Action <string> >
                        {
                            x => CallBackReload(x, item.Optional)
                        }
                    }));
                }

                Task.WhenAll(tasks).ConfigureAwait(false);
            }
            else
            {
                _client.AddListenerAsync(new AddListenerRequest
                {
#pragma warning disable CS0618
                    DataId    = _configurationSource.DataId,
                    Group     = _configurationSource.Group,
                    Tenant    = _configurationSource.Tenant,
                    Callbacks = new System.Collections.Generic.List <Action <string> >
                    {
                        x => CallBackReload(x, _configurationSource.Optional)
                    }
#pragma warning restore CS0618
                });
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConfigServerConfigurationProvider"/> class.
 /// </summary>
 /// <param name="settings">the configuration settings the provider uses when accessing the server.</param>
 /// <param name="logFactory">optional logging factory</param>
 public ConfigNacosConfigurationProvider(ConfigNacosClientSettings settings, IHttpClientFactory clientFactory, ILocalConfigInfoProcessor processor, ILoggerFactory logFactory = null)
 {
     _loggerFactory = logFactory;
     _clientFactory = clientFactory;
     _processor     = processor ?? new MemoryLocalConfigInfoProcessor();
     _logger        = logFactory?.CreateLogger <ConfigNacosConfigurationProvider>();
     _settings      = settings ?? throw new ArgumentNullException(nameof(settings));
     _client        = null;
     _configuration = new ConfigurationBuilder().Build();
 }
        protected internal async Task <string> RemoteLoadAsync(string dataId, string group, bool isRefreable)
        {
            // Get client if not already set
            if (_client == null)
            {
                _client = GetNacosClient(_settings, _clientFactory, _processor, _loggerFactory);
            }

            GetConfigRequest request = new GetConfigRequest()
            {
                DataId = dataId,
                Group  = group,
            };

            if (isRefreable)
            {
                AddListenerRequest addListenerRequest = new AddListenerRequest()
                {
                    DataId = dataId, Group = group, Callbacks = new List <Action <string> > {
                        x => { AddPropertySource(Deserialize(dataId, x)); }
                    }
                };

                _client.AddListenerAsync(addListenerRequest);
            }

            Exception error = null;

            try
            {
                var result = await _client.GetConfigAsync(request);

                return(result);
            }
            catch (Exception e)
            {
                error = e;
            }


            if (error != null)
            {
                throw error;
            }

            return(string.Empty);
        }
Esempio n. 7
0
        public TestBase()
        {
            IServiceCollection services = new ServiceCollection();

            services.AddNacos(configure =>
            {
                configure.DefaultTimeOut = 8;
                //configure.EndPoint = "http://localhost:8848";
                configure.ServerAddresses = new System.Collections.Generic.List <string> {
                    "localhost:8848",
                };
            });

            IServiceProvider serviceProvider = services.BuildServiceProvider();

            _namingClient = serviceProvider.GetService <INacosNamingClient>();
            _configClient = serviceProvider.GetService <INacosConfigClient>();
        }
Esempio n. 8
0
        public InitNacosConfigTask(IHostEnvironment hostEnvironment, IConfiguration configuration)
        {
            _hostEnvironment = hostEnvironment;

            var nacosConfig = (IConfiguration)configuration.GetSection("NacosConfig");

            nacosConfig.Bind(_nacosConfigurationSource);

            _nacosConfigClient = new NacosMsConfigClient(NullLoggerFactory.Instance, new NacosOptions
            {
                ServerAddresses = _nacosConfigurationSource.ServerAddresses,
                Namespace       = _nacosConfigurationSource.Tenant,
                AccessKey       = _nacosConfigurationSource.AccessKey,
                ClusterName     = _nacosConfigurationSource.ClusterName,
                ContextPath     = _nacosConfigurationSource.ContextPath,
                EndPoint        = _nacosConfigurationSource.EndPoint,
                DefaultTimeOut  = _nacosConfigurationSource.DefaultTimeOut,
                SecretKey       = _nacosConfigurationSource.SecretKey,
                Password        = _nacosConfigurationSource.Password,
                UserName        = _nacosConfigurationSource.UserName,
                ListenInterval  = 5000
            });
        }
        public NacosConfigurationProvider(NacosConfigurationSource configurationSource)
        {
            _configurationSource = configurationSource;

            _parser = configurationSource.NacosConfigurationParser ?? JsonConfigurationStringParser.Instance;

            _client = new NacosMsConfigClient(NullLoggerFactory.Instance, new NacosOptions
            {
                ServerAddresses = configurationSource.ServerAddresses,
                Namespace       = configurationSource.Tenant,
                ListenInterval  = 5000
            });

            _client.AddListenerAsync(new AddListenerRequest
            {
                DataId    = _configurationSource.DataId,
                Group     = _configurationSource.Group,
                Tenant    = _configurationSource.Tenant,
                Callbacks = new System.Collections.Generic.List <Action <string> >
                {
                    x => CallBackReload(x)
                }
            });
        }
        public NacosConfigurationProvider(NacosConfigurationSource configurationSource)
        {
            _configurationSource = configurationSource;
            _parser     = configurationSource.NacosConfigurationParser;
            _configDict = new ConcurrentDictionary <string, string>(StringComparer.OrdinalIgnoreCase);

            var nacosLoggerFactory = Nacos.Microsoft.Extensions.Configuration.NacosLog.NacosLoggerFactory.GetInstance(configurationSource.LoggingBuilder);

            _logger = nacosLoggerFactory.CreateLogger <NacosConfigurationProvider>();

            _client = new NacosMsConfigClient(nacosLoggerFactory, new NacosOptions
            {
                ServerAddresses = configurationSource.ServerAddresses,
                Namespace       = configurationSource.Tenant,
                AccessKey       = configurationSource.AccessKey,
                ClusterName     = configurationSource.ClusterName,
                ContextPath     = configurationSource.ContextPath,
                EndPoint        = configurationSource.EndPoint,
                DefaultTimeOut  = configurationSource.DefaultTimeOut,
                SecretKey       = configurationSource.SecretKey,
                Password        = configurationSource.Password,
                UserName        = configurationSource.UserName,
                ListenInterval  = 20000
            });

            if (configurationSource.Listeners != null && configurationSource.Listeners.Any())
            {
                var tasks = new List <Task>();

                foreach (var item in configurationSource.Listeners)
                {
                    tasks.Add(_client.AddListenerAsync(new AddListenerRequest
                    {
                        DataId    = item.DataId,
                        Group     = item.Group,
                        Tenant    = configurationSource.Tenant,
                        Callbacks = new System.Collections.Generic.List <Action <string> >
                        {
                            x => CallBackReload($"{configurationSource.Tenant}#{item.Group}#{item.DataId}", x, item.Optional)
                        }
                    }));
                }

                Task.WhenAll(tasks).ConfigureAwait(false);
            }
            else
            {
                _client.AddListenerAsync(new AddListenerRequest
                {
#pragma warning disable CS0618
                    DataId    = _configurationSource.DataId,
                    Group     = _configurationSource.Group,
                    Tenant    = _configurationSource.Tenant,
                    Callbacks = new System.Collections.Generic.List <Action <string> >
                    {
                        x => CallBackReload($"{_configurationSource.Tenant}#{_configurationSource.Group}#{_configurationSource.DataId}", x, _configurationSource.Optional)
                    }
#pragma warning restore CS0618
                });
            }
        }
Esempio n. 11
0
 public ValuesController(INacosConfigClient configClient)
 {
     _configClient = configClient;
 }
Esempio n. 12
0
        public ListenConfigurationBgTask(ILoggerFactory loggerFactory, INacosConfigClient configClient)
        {
            _logger = loggerFactory.CreateLogger <ListenConfigurationBgTask>();

            _configClient = configClient;
        }