清除状态错误的数据的过程

时间:2018-11-12 18:37:23

标签: apache-kafka stream-processing

我知道主题是一成不变的。

假设您的主题处于错误状态。乱序的数据部分,重复的记录等。清理该数据的过程是什么?这个过程如何影响下游消费者?

我看到几种不同的处理方式:

  1. 消费者不听第一个主题,而是听一个清理后的派生词。

  2. 设置主题版本,并使用应用的重复数据删除逻辑重写数据。然后让消费者更改他们收听的主题。但是后来我遇到了这样的情况,即记录被缓冲或与旧记录交错,而新记录继续进入。

如何处理这种情况?

1 个答案:

答案 0 :(得分:0)

类似数据流体系结构的声音不是幂等的。数据永远不会乱序或被Kafka复制,生产者会遇到问题。 Kafka会自动从保留期后的主题中删除数据,因此如果您只担心现有数据,只需等到该时期进行清理即可。一旦Kafka删除了数据,任何读取延迟的消费者(即想从已删除的偏移量中读取数据)都必须从auto.offset.resetearliest中设置latest,否则消费者将发出{{1} }错误。

同时,如果您可以跳过记录并使用OffsetOutOfRange开始轮询特定的偏移量/分区

解决方案将取决于您的业务逻辑和传入的数据模式,但是通过解决生产者问题而不是在消费者手中解决问题,您会变得更好。