/// <exception cref="ConnectionException">None of the provided Kafka servers are resolvable.</exception> public Router( IEnumerable <Endpoint> endpoints, IConnectionFactory connectionFactory = null, IConnectionConfiguration connectionConfiguration = null, IRouterConfiguration routerConfiguration = null, ILog log = null) { Log = log ?? TraceLog.Log; ConnectionConfiguration = connectionConfiguration ?? KafkaClient.Connections.ConnectionConfiguration.Default; _connectionFactory = connectionFactory ?? new ConnectionFactory(); var connections = new Dictionary <Endpoint, IImmutableList <IConnection> >(); foreach (var endpoint in endpoints) { try { var connection = _connectionFactory.Create(endpoint, ConnectionConfiguration, Log); connections[endpoint] = ImmutableList <IConnection> .Empty.Add(connection); } catch (ConnectionException ex) { Log.Warn(() => LogEvent.Create(ex, $"Ignoring uri that could not be connected to: {endpoint}")); } } _connections = connections.ToImmutableDictionary(); if (_connections.IsEmpty) { throw new ConnectionException("None of the provided Kafka servers are resolvable."); } Configuration = routerConfiguration ?? RouterConfiguration.Default; }
public Router( Endpoint endpoint, IConnectionFactory connectionFactory = null, IConnectionConfiguration connectionConfiguration = null, IRouterConfiguration routerConfiguration = null, ILog log = null) : this(new [] { endpoint }, connectionFactory, connectionConfiguration, routerConfiguration, log) { }
public static Task <Router> CreateAsync( Uri serverUri, IConnectionFactory connectionFactory = null, IConnectionConfiguration connectionConfiguration = null, IRouterConfiguration routerConfiguration = null, ILog log = null) { return(CreateAsync(new [] { serverUri }, connectionFactory, connectionConfiguration, routerConfiguration, log)); }
public KafkaOptions(Uri kafkaServerUri = null, IConnectionConfiguration connectionConfiguration = null, IRouterConfiguration routerConfiguration = null, IConnectionFactory connectionFactory = null, IProducerConfiguration producerConfiguration = null, IConsumerConfiguration consumerConfiguration = null, ILog log = null) : this(ImmutableList <Uri> .Empty.AddNotNull(kafkaServerUri), connectionConfiguration, routerConfiguration, connectionFactory, producerConfiguration, consumerConfiguration, log) { }
public KafkaOptions(IEnumerable <Uri> kafkaServerUris = null, IConnectionConfiguration connectionConfiguration = null, IRouterConfiguration routerConfiguration = null, IConnectionFactory connectionFactory = null, IProducerConfiguration producerConfiguration = null, IConsumerConfiguration consumerConfiguration = null, ILog log = null) { ServerUris = ImmutableList <Uri> .Empty.AddNotNullRange(kafkaServerUris); RouterConfiguration = routerConfiguration ?? KafkaClient.RouterConfiguration.Default; ConnectionConfiguration = connectionConfiguration ?? Connections.ConnectionConfiguration.Default; ConnectionFactory = connectionFactory ?? new ConnectionFactory(); ProducerConfiguration = producerConfiguration ?? KafkaClient.ProducerConfiguration.Default; ConsumerConfiguration = consumerConfiguration ?? KafkaClient.ConsumerConfiguration.Default; Log = log ?? TraceLog.Log; }
public static async Task <Router> CreateAsync( IEnumerable <Uri> serverUris, IConnectionFactory connectionFactory = null, IConnectionConfiguration connectionConfiguration = null, IRouterConfiguration routerConfiguration = null, ILog log = null) { var endpoints = new List <Endpoint>(); log = log ?? TraceLog.Log; connectionFactory = connectionFactory ?? new ConnectionFactory(); foreach (var uri in serverUris) { try { endpoints.Add(await Endpoint.ResolveAsync(uri, log)); } catch (ConnectionException ex) { log.Warn(() => LogEvent.Create(ex, $"Ignoring uri that could not be resolved: {uri}")); } } return(new Router(endpoints, connectionFactory, connectionConfiguration, routerConfiguration, log)); }
public Router(IRouterConfiguration configuration, ILoggerFactory loggerFactory) { _routes = configuration.Routes.ToImmutableList(); _logger = loggerFactory.CreateLogger(GetType()); }