Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }