我知道主题是不变的。
假设你的主题状态不好。数据段出现故障、重复记录等。清除这些数据的过程是什么?这一过程对下游消费者有何影响?
我看到了几种不同的处理方法:
消费者不会听第一个主题,而是听一个干净的衍生产品。
设置主题的版本,并使用应用的重复数据消除逻辑重写数据。然后让消费者改变他们听的主题。但后来我遇到了这样一种情况:记录要么被缓冲,要么与旧记录交织,而新记录不断出现。
处理这种情况的其他方法是什么?
我知道主题是不变的。
假设你的主题状态不好。数据段出现故障、重复记录等。清除这些数据的过程是什么?这一过程对下游消费者有何影响?
我看到了几种不同的处理方法:
消费者不会听第一个主题,而是听一个干净的衍生产品。
设置主题的版本,并使用应用的重复数据消除逻辑重写数据。然后让消费者改变他们听的主题。但后来我遇到了这样一种情况:记录要么被缓冲,要么与旧记录交织,而新记录不断出现。
处理这种情况的其他方法是什么?
1条答案
按热度按时间hs1ihplo1#
听起来数据流架构不是幂等的。Kafka从不乱序或复制数据,制作人会有问题。kafka会在保留期后自动从主题中删除数据,所以如果您只担心现有数据,请等到该保留期后再进行清理。一旦kafka删除了数据,就必须设置读取滞后的任何消费者(即,希望从已删除的偏移量读取)
auto.offset.reset
从earliest
或者latest
否则消费者将发出OffsetOutOfRange
错误。同时,如果您可以跳过记录并使用
consumer.seek(partition, offset)
解决方案将取决于您的业务逻辑和传入的数据模式,但您最好解决生产者问题,而不是在消费者中处理它。