示例#1
0
        /// <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;
        }
示例#2
0
 public Router(
     Endpoint endpoint,
     IConnectionFactory connectionFactory             = null,
     IConnectionConfiguration connectionConfiguration = null,
     IRouterConfiguration routerConfiguration         = null,
     ILog log = null)
     : this(new [] { endpoint }, connectionFactory, connectionConfiguration, routerConfiguration, log)
 {
 }
示例#3
0
 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;
        }
示例#6
0
        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));
        }
示例#7
0
 public Router(IRouterConfiguration configuration, ILoggerFactory loggerFactory)
 {
     _routes = configuration.Routes.ToImmutableList();
     _logger = loggerFactory.CreateLogger(GetType());
 }