/// <summary> /// 注册consul /// </summary> /// <param name="app"></param> /// <param name="lifetime"></param> /// <param name="serviceEntity"></param> /// <returns></returns> public static IApplicationBuilder RegisterConsul(this IApplicationBuilder app, IConfiguration configuration) { ConsulServiceOption consulServiceOption = new ConsulServiceOption(); configuration.GetSection("ServiceDiscovery").Bind(consulServiceOption); consulServiceOption.Consul = new ConsulRegistryConfig(); consulServiceOption.Consul.Address = string.Format($"http://localhost:8500"); consulServiceOption.Consul.Datacenter = "dc1"; ConsulRegistyHost consulRegistyHost = new ConsulRegistyHost(consulServiceOption.Consul); IEnumerable <Uri> address = null; if (consulServiceOption.Endpoints != null && consulServiceOption.Endpoints.Length > 0) { address = consulServiceOption.Endpoints.Select(p => new Uri(p)); } else { var features = app.Properties["server.Features"] as FeatureCollection; address = features.Get <IServerAddressesFeature>().Addresses.Select(p => new Uri(p)).ToArray(); } foreach (var item in address) { Uri healthCheck = new Uri(item, consulServiceOption.HealthCheckTemplate); var test = consulRegistyHost.ServiceRegister(item, consulServiceOption.ServiceName, consulServiceOption.Version, healthCheck, tags: new[] { $"test-/{consulServiceOption.ServiceName}" }).Result; } return(app); }
/// <summary> /// 注册consul /// </summary> /// <param name="app"></param> /// <param name="lifetime"></param> /// <param name="serviceEntity"></param> /// <returns></returns> public static IApplicationBuilder RegisterConsul(this IApplicationBuilder app, IConfiguration configuration) { ConsulServiceOption consulServiceOption = new ConsulServiceOption(); configuration.GetSection("ServiceDiscovery").Bind(consulServiceOption); ConsulRegistryConfig consulRegistryConfig = new ConsulRegistryConfig(); configuration.GetSection("ConsulRegistryConfig").Bind(consulRegistryConfig); consulServiceOption.Consul = new ConsulRegistryConfig(); if (consulRegistryConfig == null) { consulRegistryConfig.Address = string.Format($"http://localhost:8500"); consulRegistryConfig.Datacenter = string.Format($"dc1"); } consulServiceOption.Consul.Address = consulRegistryConfig.Address; consulServiceOption.Consul.Datacenter = consulRegistryConfig.Datacenter; ConsulRegistyHost consulRegistyHost = new ConsulRegistyHost(consulServiceOption.Consul); IEnumerable <Uri> address = consulServiceOption.Endpoints.Select(p => new Uri(p)); foreach (var item in address) { Uri healthCheck = new Uri(item, consulServiceOption.HealthCheckTemplate); var test = consulRegistyHost.serviceRegister(item, consulServiceOption.ServiceName, consulServiceOption.Version, healthCheck, tags: new[] { $"test-/{consulServiceOption.ServiceName}" }).Result; } return(app); }