Esempio n. 1
0
 private IProducer <string, GenericRecord> CreateProducer() =>
 new ProducerBuilder <string, GenericRecord>(new ProducerConfig {
     BootstrapServers = (string)_config[KafkaPropNames.BootstrapServers]
 })
 .SetKeySerializer(Serializers.Utf8)
 .SetValueSerializer(new AvroSerializer <GenericRecord>(_genericRecordConfig.GetSchemaRegistryClient()))
 .Build();
        private IConsumer <string, GenericRecord> CreateConsumer()
        {
            var consumer = new ConsumerBuilder <string, GenericRecord>(
                new ConsumerConfig
            {
                BootstrapServers = (string)_config[KafkaPropNames.BootstrapServers],
                GroupId          = (string)_config[KafkaPropNames.GroupId],
                AutoOffsetReset  = AutoOffsetReset.Earliest
            })
                           .SetKeyDeserializer(Deserializers.Utf8)
                           .SetValueDeserializer(new AvroDeserializer <GenericRecord>(_genericRecordConfig.GetSchemaRegistryClient()).AsSyncOverAsync())
                           .SetErrorHandler((_, e) => _logger(e.Reason))
                           .SetStatisticsHandler((_, json) => Console.WriteLine($"Stats: {json}"))
                           .Build();

            consumer.Assign(new List <TopicPartitionOffset> {
                new TopicPartitionOffset(_topic, (int)_config[KafkaPropNames.Partition], (int)_config[KafkaPropNames.Offset])
            });

            _creationTime = DateTime.Now;

            return(consumer);
        }