在Kafka中,我们如何在事务上,从主题X消费并发布到主题Y.因此,如果发布到Y失败,那么我的消费者偏移量不变

时间:2017-12-19 06:21:03

标签: transactions apache-kafka

我有一个用例,我必须从主题中消费并发布到另一个主题。我发生了任何事情,实际上这些话题都没有改变。

1 个答案:

答案 0 :(得分:1)

从Kafka 0.11开始,您可以使用事务来获取此类行为。 Kafka附带了一个精确的例子,它使用来自分区的消息并使用事务将它们生成到另一个分区。

除了执行常规事务逻辑之外,所有需要的是在事务失败时将使用者位置重置为最后提交的偏移量,并且只在事务成功时提交偏移量。

有关完整逻辑,请参阅https://github.com/apache/kafka/blob/trunk/tools/src/main/java/org/apache/kafka/tools/TransactionalMessageCopier.java