我已经开始让生产者将数据发送到Kafka,也开始让我的消费者提取相同的数据。当我在Apache Nifi中使用Consumekafka处理器(kafka版本1.0)时,我脑海中很少有与以下问题相关的查询卡夫卡消费者。
Q.1)第一次启动ConsumeKafka处理器时,如何从开头和当前消息中读取消息?
Q.2)以及在卡夫卡用户关闭时,如何读取最后消耗的消息之后的消息?
在使用Apache Nifi时如何实现以上两个?
答案 0 :(得分:0)
ConsumeKafka处理器具有一个名为“ Offset Reset”的属性,该属性在使用者组ID之前没有偏移量或不再存在该偏移量时使用。此属性的选择是“最新偏移”或“最早偏移”,默认为最新。
因此,如果您使用从未使用过的使用者组标识来启动ConsumeKafka处理器,则它将从最新消息中开始使用。之后,如果您启动和停止处理器,它将从上次消耗的偏移量开始。
如果您想再次利用“偏移量重置”将其强制设为最早或最新,则需要更改使用者组ID,因为否则现有的使用者组将始终使用现有的偏移量作为起点。
您不能同时从开头和当前阅读消息,可以从开头开始阅读并一直阅读到当前,也可以从当前开始。这是Kafka的工作方式,并不特定于NiFi。