コード例 #1
0
ファイル: AuthTest.cs プロジェクト: zesys/nacos-sdk-csharp
        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>();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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}");
        }
コード例 #4
0
        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}");
        }
コード例 #5
0
        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}");
        }
コード例 #6
0
        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
            }
        }
コード例 #7
0
        /// <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();
        }
コード例 #8
0
        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();
        }
コード例 #9
0
 /// <summary>
 /// 重载方法
 /// </summary>
 /// <param name="configClient"></param>
 /// <param name="serviceProvider"></param>
 public NacosListenConfigurationTask(INacosConfigService configClient, IServiceProvider serviceProvider)
 {
     _configClient = configClient;
 }
コード例 #10
0
 public ConfigController(INacosConfigService svc)
 {
     _svc = svc;
 }