static void Main() { try { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(Topic); Console.ForegroundColor = ConsoleColor.White; var options = new KafkaOptions(new Uri("http://localhost:9092")) { Log = new ConsoleLog() }; var brokerRouter = new BrokerRouter(options); _brokerRoute = brokerRouter.SelectBrokerRoute(Topic); List <Topic> topics = brokerRouter.GetTopicMetadata(Topic); OffsetPosition[] offsetPositions = OffsetFetchRequest(topics.First().Partitions.Select(p => new OffsetFetch { Topic = Topic, PartitionId = p.PartitionId })).Select(o => new OffsetPosition { Offset = o.Offset + 1, PartitionId = o.PartitionId }).ToArray(); StartConsumer(offsetPositions); } catch (Exception ex) { Console.WriteLine(ex); } finally { ConsoleLog.WaitOnKeys(); } }
public async Task BrokerRouterUsesFactoryToAddNewBrokers() { var router = new BrokerRouter(new Uri("http://localhost:1"), _connectionFactory); _connection .SendAsync(Arg.Any <IRequest <MetadataResponse> >(), Arg.Any <CancellationToken>(), Arg.Any <IRequestContext>()) .Returns(_ => BrokerRouterProxy.CreateMetadataResponseWithMultipleBrokers()); await router.GetTopicMetadataAsync(TestTopic, CancellationToken.None); var topics = router.GetTopicMetadata(TestTopic); _connectionFactory.Received() .Create(Arg.Is <Endpoint>(e => e.IP.Port == 2), Arg.Any <IConnectionConfiguration>(), Arg.Any <ILog>()); }
public void BrokerRouterUsesFactoryToAddNewBrokers() { var router = new BrokerRouter(new KafkaNet.Model.KafkaOptions { KafkaServerUri = new List <Uri> { new Uri("http://localhost:1") }, KafkaConnectionFactory = _factoryMock.Object }); _connMock1.Setup(x => x.SendAsync(It.IsAny <IKafkaRequest <MetadataResponse> >())) .Returns(() => Task.Factory.StartNew(() => new List <MetadataResponse> { CreateMetaResponse() })); var topics = router.GetTopicMetadata(TestTopic); _factoryMock.Verify(x => x.Create(It.Is <Uri>(uri => uri.Port == 2), It.IsAny <int>(), It.IsAny <IKafkaLog>()), Times.Once()); }
public void BrokerRouterUsesFactoryToAddNewBrokers() { var router = new BrokerRouter(new KafkaOptions { KafkaServerUri = new List <Uri> { new Uri("http://localhost:1") }, KafkaConnectionFactory = _mockKafkaConnectionFactory.Object }); _mockKafkaConnection1.Setup(x => x.SendAsync(It.IsAny <IKafkaRequest <MetadataResponse> >())) .Returns(() => Task.Run(() => new List <MetadataResponse> { CreateMetaResponse() })); var topics = router.GetTopicMetadata(TestTopic); _mockKafkaConnectionFactory.Verify(x => x.Create(It.Is <KafkaEndpoint>(e => e.Endpoint.Port == 2), It.IsAny <TimeSpan>(), It.IsAny <IKafkaLog>(), null), Times.Once()); }
private async Task AddFileToKafka(byte[] filename, byte[] message, string topic) { KafkaOptions options = new KafkaOptions(new Uri("http://sandbox.hortonworks.com:6667")); using (BrokerRouter router = new BrokerRouter(options)) using (Producer client = new Producer(router)) { var topicMetas = router.GetTopicMetadata(topic); var responses = await client.SendMessageAsync(topic, new[] { new KafkaNet.Protocol.Message { Key = filename, Value = message } }); ProduceResponse response = responses.FirstOrDefault(); MessageBox.Show(String.Format("File added to the queue - partition {0} offset {1}", response.PartitionId, response.Offset)); } }