考虑到生产者能够处理事务(简而言之:回滚和提交),我们计划将kafka用作数据仓库中的核心组件。在google kafka+事务时,我发现了很多关于kafka如何处理事务的理论想法,但目前我在javaapi中没有看到任何支持生产者提交和回滚的函数。有没有人对交易和Kafka有过一些经验,能给我一个提示?
6qqygrtg1#
我认为您需要的基本上是kafka中的事务性消息传递,生产者能够创建会话(aka transactional session)并在会话中发送消息。因此,它可以选择提交/中止事务。[来源]:详情请看维基
yhxst69z2#
不;kafka不支持事务。您可以确定消息已生成到分区,但一旦生成,就无法回滚该消息。由于版本0.11.0,apache kafka支持事务:https://cwiki.apache.org/confluence/display/kafka/transactional+messaging+in+kafka
lbsnaicq3#
实际上,从上一个版本0.11.0.0开始,支持事务。请参见为Kafka制作人担保唯一的全球交易
3条答案
按热度按时间6qqygrtg1#
我认为您需要的基本上是kafka中的事务性消息传递,生产者能够创建会话(aka transactional session)并在会话中发送消息。因此,它可以选择提交/中止事务。
[来源]:详情请看维基
yhxst69z2#
不;kafka不支持事务。
您可以确定消息已生成到分区,但一旦生成,就无法回滚该消息。
由于版本0.11.0,apache kafka支持事务:https://cwiki.apache.org/confluence/display/kafka/transactional+messaging+in+kafka
lbsnaicq3#
实际上,从上一个版本0.11.0.0开始,支持事务。请参见为Kafka制作人担保唯一的全球交易