我们计划将Kafka用作数据仓库的核心组件,因为生产者能够处理事务(简而言之:回滚和提交)。
当用Google搜索 Kafka +交易时,我发现了很多关于Kafka 如何处理交易的可能性的理论思考,但此刻我没有看到任何功能java API,支持 producer 的提交和回滚。
有没有人在交易和卡夫卡方面有过一些经验,可以给我一个提示吗?
答案 0 :(得分:3)
<击>否; Kafka不支持交易。
您可以确定已经为分区生成了一条消息,但是一旦生成,您将无法回滚该消息。
自版本0.11.0起,Apache Kafka支持交易:https://cwiki.apache.org/confluence/display/KAFKA/Transactional+Messaging+in+Kafka
答案 1 :(得分:3)
实际上,从最后一个版本开始支持0.11.0.0事务。见Guarantee unique global transaction for Kafka Producers
答案 2 :(得分:1)
我认为您正在寻找的内容基本上称为Kafka中的事务性消息传递,其中生产者能够创建会话(也称为事务性会话)并在会话中发送消息。因此,它可以选择提交/中止事务。
[来源]:请阅读wiki了解详情