我正在ASP.NET网络应用程序中编写一个Kafka消费者,看起来一切都很好,但是每次我运行消费者时,它都会消耗主题中的所有消息。
这里是消费者配置
ConsumerConfig = new ConsumerConfig
{
GroupId = _config["KafkaConfig:GroupId"],
BootstrapServers = _config["KafkaConfig:BootstrapServer"],
AutoOffsetReset = AutoOffsetReset.Latest,
};
我正在使用Confluent Kafka Client for .NET
2条答案
按热度按时间x0fgdtte1#
如果你总是想在应用程序启动的任何时候看到最后一条消息,那么Kafka就不是正确的工具。
您可以
Seek()
您的消费者到最后,获取该偏移量,然后Seek(N-1)
,但是可能会有生成器在这些seek调用之间发送 * 新记录 *。如果你必须使用Kafka,那么你会想使用ksqlDB / Kafka Streams或Kafka Connect来创建一个KTable或数据库,存储你可以远程查询的 * 每个键 * 的最新值。
zzwlnbp82#
例如,您可以设置一个fromBeginning标志。
这使得消费者只能从你订阅的那一点得到消息。
希望能有所帮助