public AuthTest(ITestOutputHelper output) { _output = output; IServiceCollection services = new ServiceCollection(); services.AddNacosV2Config(x => { x.ServerAddresses = new System.Collections.Generic.List <string> { "http://localhost:8848/" }; x.EndPoint = ""; x.Namespace = "cs-test"; x.UserName = "******"; x.Password = "******"; // swich to use http or rpc x.ConfigUseRpc = true; x.NamingUseRpc = true; }); services.AddNacosV2Naming(x => { }); services.AddLogging(builder => { builder.AddConsole(); }); IServiceProvider serviceProvider = services.BuildServiceProvider(); _configSvc = serviceProvider.GetService <INacosConfigService>(); _namingSvc = serviceProvider.GetService <INacosNamingService>(); }
static async Task ListenConfig(INacosConfigService svc, IListener listener) { var dataId = "demo-dateid"; var group = "demo-group"; // 添加监听 await svc.AddListener(dataId, group, listener); await Task.Delay(500); // 模拟配置变更,listener会收到变更信息 await PublishConfig(svc); await Task.Delay(500); await PublishConfig(svc); await Task.Delay(500); // 移除监听 await svc.RemoveListener(dataId, group, listener); // 配置变更后,listener不会收到变更信息 await PublishConfig(svc); }
static async Task RemoveConfig(INacosConfigService svc) { var dataId = "demo-dateid"; var group = "demo-group"; await Task.Delay(500); var flag = await svc.RemoveConfig(dataId, group); Console.WriteLine($"=====================删除配置结果,{flag}"); }
static async Task GetConfig(INacosConfigService svc) { var dataId = "demo-dateid"; var group = "demo-group"; await Task.Delay(500); var config = await svc.GetConfig(dataId, group, 5000L); Console.WriteLine($"======================获取配置结果,{config}"); }
static async Task PublishConfig(INacosConfigService svc) { var dataId = "demo-dateid"; var group = "demo-group"; var val = "test-value-" + DateTimeOffset.Now.ToUnixTimeSeconds().ToString(); await Task.Delay(500); var flag = await svc.PublishConfig(dataId, group, val); Console.WriteLine($"======================发布配置结果,{flag}"); }
public NacosV2ConfigurationProvider(NacosV2ConfigurationSource configurationSource) { _configurationSource = configurationSource; _parser = configurationSource.NacosConfigurationParser; _configDict = new ConcurrentDictionary <string, string>(StringComparer.OrdinalIgnoreCase); _listenerDict = new Dictionary <string, MsConfigListener>(); var options = Options.Create(new NacosSdkOptions() { ServerAddresses = configurationSource.ServerAddresses, Namespace = configurationSource.GetNamespace(), AccessKey = configurationSource.AccessKey, ContextPath = configurationSource.ContextPath, EndPoint = configurationSource.EndPoint, DefaultTimeOut = configurationSource.DefaultTimeOut, SecretKey = configurationSource.SecretKey, Password = configurationSource.Password, UserName = configurationSource.UserName, ListenInterval = 20000, ConfigUseRpc = configurationSource.ConfigUseRpc, ConfigFilterAssemblies = configurationSource.ConfigFilterAssemblies, ConfigFilterExtInfo = configurationSource.ConfigFilterExtInfo, }); var nacosLoggerFactory = Nacos.Microsoft.Extensions.Configuration.NacosLog.NacosLoggerFactory.GetInstance(configurationSource.LoggingBuilder); _logger = nacosLoggerFactory.CreateLogger <NacosV2ConfigurationProvider>(); _client = new NacosConfigService(nacosLoggerFactory, options); if (configurationSource.Listeners != null && configurationSource.Listeners.Any()) { var tasks = new List <Task>(); foreach (var item in configurationSource.Listeners) { var listener = new MsConfigListener(item.DataId, item.Group, item.Optional, this, _logger); tasks.Add(_client.AddListener(item.DataId, item.Group, listener)); _listenerDict.Add($"{item.DataId}#{item.Group}", listener); } Task.WaitAll(tasks.ToArray()); } else { #pragma warning disable CS0618 var listener = new MsConfigListener(_configurationSource.DataId, _configurationSource.Group, _configurationSource.Optional, this, _logger); _client.AddListener(_configurationSource.DataId, _configurationSource.Group, listener); _listenerDict.Add($"{_configurationSource.DataId}#{_configurationSource.Group}", listener); #pragma warning restore CS0618 } }
/// <summary> /// /// </summary> /// <param name="serv"></param> /// <param name="configClient"></param> /// <param name="serviceProvider"></param> /// <param name="_internalConfigurationRepo"></param> /// <param name="_internalConfigurationCreator"></param> public OcelotConfigurationTask(INacosNamingService serv, INacosConfigService configClient, IServiceProvider serviceProvider, IInternalConfigurationRepository _internalConfigurationRepo, IInternalConfigurationCreator _internalConfigurationCreator) { _configClient = configClient; _servClient = serv; nacosConfigListener.internalConfigurationRepo = _internalConfigurationRepo; nacosConfigListener.internalConfigurationCreator = _internalConfigurationCreator; OcelotConfig = Appsettings.GetValue("ApiGateWay:OcelotConfig"); OcelotConfigGroup = Appsettings.GetValue("ApiGateWay:OcelotConfigGroup"); AppConfig = Appsettings.GetValue("ApiGateWay:AppConfig"); AppConfigGroup = Appsettings.GetValue("ApiGateWay:AppConfigGroup"); string OcelotCfg = configClient.GetConfig(OcelotConfig, OcelotConfigGroup, 10000).GetAwaiter().GetResult(); nacosConfigListener.ReceiveConfigInfo(OcelotCfg); string AppCfg = configClient.GetConfig(AppConfig, AppConfigGroup, 10000).GetAwaiter().GetResult(); AppConfigListener.ReceiveConfigInfo(AppCfg); //string sss = serv.Cof_NaoceGet("fld-cloud-datax", "DEFAULT_GROUP", "/api/base/deviceList?limit=10&page=1").GetAwaiter().GetResult(); }
static async Task Main(string[] args) { var serviceProvider = InitServiceProvider(); INacosConfigService configSvc = serviceProvider.GetService <INacosConfigService>(); INacosNamingService namingSvc = serviceProvider.GetService <INacosNamingService>(); DemoConfigListener listener = new DemoConfigListener(); await PublishConfig(configSvc); await GetConfig(configSvc); await RemoveConfig(configSvc); await ListenConfig(configSvc, listener); DemoEventListener eventListener = new DemoEventListener(); await RegisterInstance(namingSvc); await GetAllInstances(namingSvc); await DeregisterInstance(namingSvc); await Subscribe(namingSvc, eventListener); Console.ReadKey(); }
/// <summary> /// 重载方法 /// </summary> /// <param name="configClient"></param> /// <param name="serviceProvider"></param> public NacosListenConfigurationTask(INacosConfigService configClient, IServiceProvider serviceProvider) { _configClient = configClient; }
public ConfigController(INacosConfigService svc) { _svc = svc; }