如果我在Kafka中有Transactional Producer,我可以用Kafka Streams读取一次消息吗?

时间:2018-06-05 11:13:50

标签: apache-kafka kafka-consumer-api kafka-producer-api apache-kafka-streams

我想拥有Exactly-once语义,但我不想用Consumer阅读消息。我宁愿用Kafka Streams AP阅读消息。如果我将 processing.guarantee = exact_once 添加到流配置中,是否会保留一次语义?

1 个答案:

答案 0 :(得分:2)

完全一次处理基于读进程写入模式。 Kafka Streams使用这种模式,因此,如果您编写一个将结果写回Kafka主题的常规Kafka Streams应用程序,您将获得一次性处理保证。

请注意,此保证不涵盖副作用。另请注意,如果发生故障,可能会在内部重试。完全一次意味着,您在输出主题中看到的结果与未发生错误(因此不会重试)的情况相同。

有关详细信息,您可能希望观看有关Kafka中一次性保证的谈话录音。 Confluent网页上有多个(免责声明:我是Confluent的员工)https://www.confluent.io/resources/