我有一个Kafka消费者项目,它使用来自特定Kafka主题的数据。我一得到90%的记录就进行了处理,但我延迟了对其中一些记录的处理(10%)。
这些记录需要延迟,我无法提交记录,因此可能会导致Kafka将分区重新分配给新节点。为了避免这种情况,我可以将同一主题读两次,并在第二个使用者中延迟获取数据部分,但它需要两次反序列化,因此会带来开销。
有没有可能使用单个消费者读取记录,但与Kafka消费者有两个单独的提交?就提交而言,这基本上类似于有两个不同的消费者,consumer.poll将从单个消费者调用,但每个批处理将有两个consumer.commitSync。我将帮助我避免额外的反序列化和网络成本。
发布于 2017-12-27 12:45:46
下面提到的是你可以做的事情,以实现上述任务。
通过这种方式,您将在每次需要处理消息时保持主题clean.and,只需设置一次管道即可轻松完成此任务。
https://stackoverflow.com/questions/47984121
复制相似问题