Beispiel #1
0
        private async Task <Uri> GetRequestUriAsync(HttpRequestMessage request,
                                                    string serviceName, Uri uri)
        {
            var service = await _servicesRegistry.GetAsync(serviceName);

            if (service == null)
            {
                throw new ConsulServiceNotFoundException($"Consul service: '{serviceName}' was not found.",
                                                         serviceName);
            }

            if (!_options.SkipLocalhostDockerDnsReplace)
            {
                // todo
                service.Address = service.Address.Replace("docker.for.mac.localhost", "localhost")
                                  .Replace("docker.for.win.localhost", "localhost")
                                  .Replace("host.docker.internal", "localhost");
            }

            var uriBuilder = new UriBuilder(uri)
            {
                Host = service.Address,
                Port = service.Port
            };

            return(uriBuilder.Uri);
        }
Beispiel #2
0
        private async Task <Uri> GetRequestUriAsync(HttpRequestMessage request,
                                                    string serviceName, Uri uri)
        {
            //ask the consul registry give me a instance of service from available instances (pick first from unused instance) with 'client side load balancing' or with some sort of work like load balancing then override request address with one provide by consul.
            var service = await _servicesRegistry.GetAsync(serviceName);

            if (service is null)
            {
                throw new ConsulServiceNotFoundException($"Consul service: '{serviceName}' was not found.",
                                                         serviceName);
            }

            if (!_options.SkipLocalhostDockerDnsReplace)
            {
                service.Address = service.Address.Replace("docker.for.mac.localhost", "localhost")
                                  .Replace("docker.for.win.localhost", "localhost")
                                  .Replace("host.docker.internal", "localhost");
            }

            var uriBuilder = new UriBuilder(uri)
            {
                Host = service.Address,
                Port = service.Port
            };

            return(uriBuilder.Uri);
        }
        private async Task <Uri> GetRequestUriAsync(HttpRequestMessage request,
                                                    string serviceName, Uri uri)
        {
            var service = await _servicesRegistry.GetAsync(serviceName);

            if (service == null)
            {
                throw new ConsulServiceNotFoundException($"Consul service: '{serviceName}' was not found.",
                                                         serviceName);
            }

            if (!_options.Value.SkipLocalhostDockerDnsReplace)
            {
                var dockerHostAddress = "172.28.160.1";
                service.Address = service.Address.Replace("localhost", dockerHostAddress);
            }

            var uriBuilder = new UriBuilder(uri)
            {
                Host = service.Address,
                Port = service.Port
            };

            return(uriBuilder.Uri);
        }
Beispiel #4
0
        private async Task <Uri> GetRequestUriAsync(HttpRequestMessage request,
                                                    string serviceName, Uri uri)
        {
            var service = await _servicesRegistry.GetAsync(serviceName);

            if (service == null)
            {
            }

            var uriBuilder = new UriBuilder(uri)
            {
                Host = service.Address,
                Port = service.Port
            };

            return(uriBuilder.Uri);
        }
Beispiel #5
0
        private async Task <Uri> GetDirectServiceUriAsync(string serviceName, Uri uri)
        {
            var service = await _consulRegistry.GetAsync(serviceName);

            if (service == null)
            {
                throw new Exception($"Consul service: '{serviceName}' was not found.");
            }

            var directServiceUri = new Uri($"{service.Address}:{service.Port}");
            var uriBuilder       = new UriBuilder(uri)
            {
                Scheme = directServiceUri.Scheme,
                Host   = directServiceUri.Host,
                Port   = directServiceUri.Port
            };

            return(uriBuilder.Uri);
        }
Beispiel #6
0
        private async Task <Uri> GetRequestUriAsync(HttpRequestMessage request,
                                                    string serviceName, Uri uri)
        {
            var service = await _servicesRegistry.GetAsync(serviceName);

            if (service == null)
            {
                throw new ConsulServiceNotFoundException($"Consul service: '{serviceName}' was not found.",
                                                         serviceName);
            }

            var uriBuilder = new UriBuilder(uri)
            {
                Host = service.Address,
                Port = service.Port
            };

            return(uriBuilder.Uri);
        }