【发布时间】:2018-06-07 14:57:05
【问题描述】:
我有一个 Kafka 消费者项目,它使用来自特定 Kafka 主题的数据。 90% 的记录在我一拿到它们就被处理了,但是我处理一些记录有延迟(10%)。
这些记录需要延迟,我无法提交记录,因此可能会导致 Kafka 将分区重新分配给新节点。为了避免这种情况,我可以读取同一主题两次并延迟第二个消费者中的数据获取部分,但它需要两次反序列化,因此会产生开销。
是否有可能使用单个消费者读取记录但与 Kafka 消费者有两个单独的提交?就提交而言,它基本上类似于有两个不同的消费者,consumer.poll 将从单个消费者调用,但每个批次会有两个 consumer.commitSync。我将帮助我避免额外的反序列化和网络成本。
【问题讨论】:
-
是否可以将这 10% 的记录放到单独的主题中?
-
@amethystic 不幸的是没有。
标签: apache-kafka apache-zookeeper kafka-consumer-api apache-kafka-connect