protected virtual async Task Subscribe_Should_Succeed() { var serviceName = $"sub-{Guid.NewGuid().ToString()}"; var ip = "127.0.0.3"; var port = 9999; await AssertRegisterSingleInstance(serviceName, ip, port, nameof(DeregisterInstance_Should_Succeed)).ConfigureAwait(false); var listerner = new NamingListerner(_output); await _namingSvc.Subscribe(serviceName, listerner).ConfigureAwait(false); await _namingSvc.RegisterInstance(serviceName, "127.0.0.4", 9999).ConfigureAwait(false); await Task.Delay(500).ConfigureAwait(false); }
/// <summary> /// 订阅服务变化 /// </summary> /// <param name="stoppingToken"></param> /// <returns></returns> protected override async Task ExecuteAsync(CancellationToken stoppingToken) { // Add listener await _nacosNamingService.Subscribe(JsonConfigSettings.NacosServiceName, Nacos.V2.Common.Constants.DEFAULT_GROUP, eventListener); var instance = new Nacos.V2.Naming.Dtos.Instance() { ServiceName = JsonConfigSettings.NacosServiceName, ClusterName = Nacos.V2.Common.Constants.DEFAULT_CLUSTER_NAME, Ip = IpHelper.GetCurrentIp(null), Port = JsonConfigSettings.NacosPort, Enabled = true, Weight = 1000,// 权重 默认1000 Metadata = JsonConfigSettings.NacosMetadata }; await _nacosNamingService.RegisterInstance(JsonConfigSettings.NacosServiceName, Nacos.V2.Common.Constants.DEFAULT_GROUP, instance); ConsoleHelper.WriteSuccessLine($"Nacos connect: Success!"); }
static async Task Subscribe(INacosNamingService svc, IEventListener listener) { // 订阅服务变化 await svc.Subscribe("demo-svc1", Nacos.V2.Common.Constants.DEFAULT_GROUP, listener); // 模拟服务变化,listener会收到变更信息 await RegisterInstance(svc, 9997); await Task.Delay(3000); // 取消订阅 await svc.Unsubscribe("demo-svc1", Nacos.V2.Common.Constants.DEFAULT_GROUP, listener); // 服务变化后,listener不会收到变更信息 await RegisterInstance(svc); await Task.Delay(1000); }