public async Task ShouldRecoverFromFailerByUpdateMetadataOnce() //Do not debug this test !! { var log = new DefaultTraceLog(); var routerProxy = new BrokerRouterProxy(_kernel); routerProxy._cacheExpiration = TimeSpan.FromMilliseconds(1000); var router = routerProxy.Create(); int partitionId = 0; ProtocolGateway protocolGateway = new ProtocolGateway(router); var fetchRequest = new FetchRequest(); int numberOfCall = 100; long numberOfErrorSend = 0; TaskCompletionSource <int> x = new TaskCompletionSource <int>(); Func <Task <FetchResponse> > ShouldReturnNotLeaderForPartitionAndThenNoError = async() => { log.DebugFormat("FetchResponse Start "); if (!x.Task.IsCompleted) { if (Interlocked.Increment(ref numberOfErrorSend) == numberOfCall) { await Task.Delay(routerProxy._cacheExpiration); await Task.Delay(1); x.TrySetResult(1); log.DebugFormat("all is complete "); } await x.Task; log.DebugFormat("SocketException "); throw new BrokerConnectionException("", new KafkaEndpoint()); } log.DebugFormat("Completed "); return(new FetchResponse() { Error = (short)ErrorResponseCode.NoError }); }; routerProxy.BrokerConn0.FetchResponseFunction = ShouldReturnNotLeaderForPartitionAndThenNoError; routerProxy.BrokerConn0.MetadataResponseFunction = BrokerRouterProxy.CreateMetadataResponseWithMultipleBrokers; Task[] tasks = new Task[numberOfCall]; for (int i = 0; i < numberOfCall; i++) { tasks[i] = protocolGateway.SendProtocolRequest(fetchRequest, BrokerRouterProxy.TestTopic, partitionId); } await Task.WhenAll(tasks); Assert.That(numberOfErrorSend, Is.GreaterThan(1), "numberOfErrorSend"); Assert.That(routerProxy.BrokerConn0.FetchRequestCallCount, Is.EqualTo(numberOfCall + numberOfErrorSend), "FetchRequestCallCount"); Assert.That(routerProxy.BrokerConn0.MetadataRequestCallCount, Is.EqualTo(2), "MetadataRequestCallCount"); }
public KafkaOptions(params Uri[] kafkaServerUri) { KafkaServerUri = kafkaServerUri.ToList(); PartitionSelector = new DefaultPartitionSelector(); Log = new DefaultTraceLog(); KafkaConnectionFactory = new DefaultKafkaConnectionFactory(); ResponseTimeoutMs = TimeSpan.FromMilliseconds(DefaultResponseTimeout); }
public KafkaOptions(params Uri[] kafkaServerUri) { KafkaServerUri = kafkaServerUri.ToList(); KafkaConnectionFactory = new DefaultKafkaConnectionFactory(); PartitionSelector = new DefaultPartitionSelector(); Log = new DefaultTraceLog(); ResponseTimeoutMs = DefaultResponseTimeout; }
public ConsumerOptions(string topic, IBrokerRouter router) { Topic = topic; Router = router; PartitionWhitelist = new List<int>(); Log = new DefaultTraceLog(); TopicPartitionQueryTimeMs = (int)TimeSpan.FromMinutes(15).TotalMilliseconds; ConsumerBufferSize = 50; }
public ConsumerOptions(string topic, IBrokerRouter router) { Topic = topic; Router = router; PartitionWhitelist = new List <int>(); Log = new DefaultTraceLog(); TopicPartitionQueryTimeMs = (int)TimeSpan.FromMinutes(15).TotalMilliseconds; ConsumerBufferSize = 50; }
public ConsumerOptions(string topic, IBrokerRouter router) { Topic = topic; Router = router; PartitionWhitelist = new List <int>(); Log = new DefaultTraceLog(); TopicPartitionQueryTimeMs = (int)TimeSpan.FromMinutes(15).TotalMilliseconds; ConsumerBufferSize = DefaultMaxConsumerBufferSize; BackoffInterval = TimeSpan.FromMilliseconds(DefaultBackoffIntervalMS); FetchBufferMultiplier = DefaulFetchBufferMultiplier; }
public KafkaOptions(params Uri[] kafkaServerUri) { KafkaServerUri = kafkaServerUri.ToList(); PartitionSelector = new DefaultPartitionSelector(); Log = new DefaultTraceLog(); KafkaConnectionFactory = new DefaultKafkaConnectionFactory(); ResponseTimeoutMs = TimeSpan.FromMilliseconds(DefaultResponseTimeout); CacheExpiration = TimeSpan.FromMilliseconds(DefaultCacheExpirationTimeoutMS); RefreshMetadataTimeout = TimeSpan.FromMilliseconds(DefaultRefreshMetadataTimeout); MaxRetry = DefaultMaxRetry; StatisticsTrackerOptions = new StatisticsTrackerOptions(); }
public KafkaOptions(params Uri[] kafkaServerUri) { KafkaServerUri = kafkaServerUri.ToList(); PartitionSelector = new DefaultPartitionSelector(); Log = new DefaultTraceLog(); KafkaConnectionFactory = new DefaultKafkaConnectionFactory(); ResponseTimeoutMs = TimeSpan.FromMilliseconds(DefaultResponseTimeout); CacheExpiration = TimeSpan.FromMilliseconds(DefaultCacheExpirationTimeoutMS); RefreshMetadataTimeout = TimeSpan.FromMilliseconds(DefaultRefreshMetadataTimeout); MaxRetry = DefaultMaxRetry; StatisticsTrackerOptions = new StatisticsTrackerOptions(); }
public ConsumerOptions(string topic, IBrokerRouter router) { Topic = topic; Router = router; PartitionWhitelist = new List<int>(); Log = new DefaultTraceLog(); TopicPartitionQueryTimeMs = (int)TimeSpan.FromMinutes(15).TotalMilliseconds; ConsumerBufferSize = DefaultMaxConsumerBufferSize; BackoffInterval = TimeSpan.FromMilliseconds(DefaultBackoffIntervalMS); FetchBufferMultiplier = DefaulFetchBufferMultiplier; MaxWaitTimeForMinimumBytes = TimeSpan.FromMilliseconds(FetchRequest.DefaultMaxBlockingWaitTime); MinimumBytes = FetchRequest.DefaultMinBlockingByteBufferSize; }
public KafkaConnectionTests() { _log = new DefaultTraceLog(); _kafkaEndpoint = new DefaultKafkaConnectionFactory().Resolve(new Uri("http://localhost:8999"), _log); }
public KafkaTcpSocketTests() { var log = new DefaultTraceLog(); _fakeServerUrl = new DefaultKafkaConnectionFactory().Resolve(new Uri("http://localhost:8999"), log); _badServerUrl = new DefaultKafkaConnectionFactory().Resolve(new Uri("http://localhost:1"), log); }
public KafkaConnectionTests() { _log = new DefaultTraceLog(); }