Kafka 仅使用最新消息

gwo2fgha  于 2022-12-11  发布在  Apache
关注(0)|答案(2)|浏览(226)

我正在ASP.NET网络应用程序中编写一个Kafka消费者,看起来一切都很好,但是每次我运行消费者时,它都会消耗主题中的所有消息。
这里是消费者配置

ConsumerConfig = new ConsumerConfig
        {
            GroupId = _config["KafkaConfig:GroupId"],
            BootstrapServers = _config["KafkaConfig:BootstrapServer"],
            AutoOffsetReset = AutoOffsetReset.Latest,
        };

我正在使用Confluent Kafka Client for .NET

x0fgdtte

x0fgdtte1#

如果你总是想在应用程序启动的任何时候看到最后一条消息,那么Kafka就不是正确的工具。
您可以Seek()您的消费者到最后,获取该偏移量,然后Seek(N-1)但是可能会有生成器在这些seek调用之间发送 * 新记录 *。
如果你必须使用Kafka,那么你会想使用ksqlDB / Kafka Streams或Kafka Connect来创建一个KTable或数据库,存储你可以远程查询的 * 每个键 * 的最新值。

zzwlnbp8

zzwlnbp82#

例如,您可以设置一个fromBeginning标志。

await consumer.subscribe({topic: 'test-topic', fromBeginning: false});

这使得消费者只能从你订阅的那一点得到消息。
希望能有所帮助

相关问题