Esempio n. 1
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }


            app.UseAuthentication();
            app.UseRouting();
            app.UseHttpsRedirection();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
            var consulConfig = new ServiceDiscoveryConfiguration();

            Configuration.GetSection("consulConfig").Bind(consulConfig);
            app.UseConsul(Configuration);

            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "Authentication API V1");
            });
        }
Esempio n. 2
0
        public static IServiceCollection AddServiceDiscovery(this IServiceCollection services, Action <ServiceDiscoveryConfiguration> optionsAction)
        {
            var options = new ServiceDiscoveryConfiguration();

            optionsAction?.Invoke(options);
            services.TryAddSingleton(options);
            return(services);
        }
Esempio n. 3
0
 public UserAccountsClient(
     ILoggerFactory loggerFactory,
     ServiceDiscoveryConfiguration configuration,
     HttpClient httpClient,
     IServiceRegistryClient discoveryClient)
     : base(loggerFactory, configuration, httpClient, discoveryClient, "Product.Capability", "UserAccounts")
 {
 }
Esempio n. 4
0
        private static void RegisterDiscoveryClient(IServiceCollection services, IConfiguration configuration)
        {
            var serviceSection = configuration.GetSection("ServiceDiscovery");

            var serviceConfiguration    = new ServiceConfiguration(serviceSection["ServiceName"], serviceSection["ServiceUrl"]);
            var apiGatewayConfiguration = new ServiceDiscoveryConfiguration(serviceSection["ServiceDiscoveryUrl"]);

            services.AddServiceDiscoveryClientWorker(serviceConfiguration, apiGatewayConfiguration);
        }
 public ServiceDiscoveryHttpClient(
     ILogger <ServiceDiscoveryHttpClient> logger,
     ServiceConfiguration serviceConfiguration,
     ServiceDiscoveryConfiguration apiGatewayConfiguration)
 {
     this.logger = logger;
     this.serviceConfiguration    = serviceConfiguration;
     this.apiGatewayConfiguration = apiGatewayConfiguration;
 }
Esempio n. 6
0
 public RabbitMQPersistentConnection(
     IConnectionFactoryResolver connectionFactoryResolver,
     ServiceDiscoveryConfiguration serviceDiscoveryConfiguration,
     ILogger <RabbitMQPersistentConnection> logger)
 {
     _connectionFactoryResolver     = connectionFactoryResolver ?? throw new ArgumentNullException(nameof(connectionFactoryResolver));
     _serviceDiscoveryConfiguration = serviceDiscoveryConfiguration;
     _logger = (ILogger)logger ?? NullLogger.Instance;
 }
Esempio n. 7
0
        public static IServiceCollection AddServiceDiscovery(this IServiceCollection services, string address, string serviceName)
        {
            var options = new ServiceDiscoveryConfiguration()
            {
                Address = address, ServiceName = serviceName
            };

            services.TryAddSingleton(options);
            return(services);
        }
        private static ServiceDiscoveryClient GetServiceDiscoveryClient()
        {
            var serviceDiscoveryConfiguration = new ServiceDiscoveryConfiguration();

            serviceDiscoveryConfiguration.ServiceUrl = "http://localhost:5000/service-discovery";
            var settings               = Options.Create(serviceDiscoveryConfiguration);
            var restClient             = new RestClient.RestClient();
            var serviceDiscoveryClient = new ServiceDiscoveryClient(settings);

            return(serviceDiscoveryClient);
        }
Esempio n. 9
0
        public static IServiceCollection AddServiceDiscoveryClientWorker(
            this IServiceCollection services,
            ServiceConfiguration serviceConfiguration,
            ServiceDiscoveryConfiguration apiGatewayConfiguration)
        {
            services.AddSingleton(serviceConfiguration);
            services.AddSingleton(apiGatewayConfiguration);

            services.AddTransient <ServiceDiscoveryHttpClient>();
            services.AddHostedService <ApiGatewayWorker>();

            return(services);
        }
        static async Task Main(string[] args)
        {
            var serviceConfiguration    = new ServiceConfiguration("SomeService", "https://google.com");
            var apiGatewayConfiguration = new ServiceDiscoveryConfiguration("http://localhost:6221");

            var myLogger = new MyLogger <ServiceDiscoveryHttpClient>();

            var httpClient = new ServiceDiscoveryHttpClient(myLogger, serviceConfiguration, apiGatewayConfiguration);

            await httpClient.Register();

            Console.ReadKey();

            await httpClient.Unregister();

            Console.WriteLine("Hello World!");
        }
Esempio n. 11
0
        public ServiceDiscoveryHostedService(
            ILogger <ServiceDiscoveryHostedService> logger,
            ServiceDiscoveryConfiguration configuration,
            IServiceRegistryClient registryClient,
            IServer server,
            ServiceDescriptor serviceDescriptor)
        {
            EnsureArg.IsNotNull(logger, nameof(logger));
            EnsureArg.IsNotNull(configuration, nameof(configuration));
            EnsureArg.IsNotNull(registryClient, nameof(registryClient));
            EnsureArg.IsNotNull(server, nameof(server));
            EnsureArg.IsNotNull(serviceDescriptor, nameof(serviceDescriptor));

            this.logger            = logger;
            this.configuration     = configuration;
            this.registryClient    = registryClient;
            this.server            = server;
            this.serviceDescriptor = serviceDescriptor;
            this.serviceAddress    = this.configuration.ServiceAddresses?.FirstOrDefault(); // TODO: register all addresses (foreach)
        }
        public ServiceDiscoveryOperationResult InitializeConfiguration(string configFilePath)
        {
            ServiceDiscoveryOperationResult serviceDiscoveryOperationResult = new ServiceDiscoveryOperationResult()
            {
                OperationMethod = "ServiceDiscovery-Initialize-Config",
                IsSuccess       = true
            };

            try
            {
                FileStream fileStream = new FileStream(configFilePath, FileMode.Open);
                try
                {
                    ServiceDiscoveryConfiguration serviceDiscoveryConfiguration = (new XmlSerializer(typeof(ServiceDiscoveryConfiguration))).Deserialize(fileStream) as ServiceDiscoveryConfiguration;
                    if (serviceDiscoveryConfiguration != null)
                    {
                        this.serviceDiscoveryList = serviceDiscoveryConfiguration.ConfigItems;
                        if ((string.IsNullOrEmpty(serviceDiscoveryConfiguration.AgentIP) ? false : !string.IsNullOrEmpty(serviceDiscoveryConfiguration.AgentPort)))
                        {
                            this.ConfigureConsulAgentUrl(serviceDiscoveryConfiguration.AgentIP, serviceDiscoveryConfiguration.AgentPort);
                        }
                    }
                }
                finally
                {
                    if (fileStream != null)
                    {
                        ((IDisposable)fileStream).Dispose();
                    }
                }
            }
            catch (Exception exception1)
            {
                Exception exception = exception1;
                serviceDiscoveryOperationResult.IsSuccess    = false;
                serviceDiscoveryOperationResult.ErrorMessage = exception.ToString();
            }
            return(serviceDiscoveryOperationResult);
        }