예제 #1
0
        private void Handle(string fromServer, string srcTopic, string group,
                            AutoOffsetReset autoOffsetReset, CancellationToken cancellationToken)
        {
            var channel = Channel.CreateUnbounded <Message <byte[], byte[]> >();

            var source = new KafkaSource(fromServer, srcTopic, group, autoOffsetReset);

            var consumerTask = _kafkaService.StarConsumer(source.Topic, source.GetConsumerConfig(), channel.Writer,
                                                          cancellationToken);

            var printTask = _kafkaService.StartPrintMessages(channel.Reader, cancellationToken);
        }
예제 #2
0
        private void Handle(string fromServer, string srcTopic, string group,
                            AutoOffsetReset autoOffsetReset, string toServer, string dstTopic,
                            CancellationToken cancellationToken = default)
        {
            var channel = Channel.CreateUnbounded <Message <byte[], byte[]> >();

            dstTopic = dstTopic.IsEmpty()
                ? srcTopic
                : dstTopic;

            var source      = new KafkaSource(fromServer, srcTopic, group, autoOffsetReset);
            var destination = new KafkaDestination(toServer, dstTopic);

            var consumerTask = _kafkaService.StarConsumer(source.Topic, source.GetConsumerConfig(), channel.Writer,
                                                          cancellationToken);

            var producerTask = _kafkaService.StartProducer(destination.Topic, destination.GetProducerConfig(), channel.Reader,
                                                           cancellationToken);
        }