rh0*_*h0x 1 transactions atomicity apache-kafka kafka-producer-api
在最新版本的Kafka 0.11.0.0中,Apache团队正在引入幂等生产者和交易.是否可以保证我们想要记录的整组消息(例如100万)只会在最后提交?我想,如果例如生产者放松与经纪人的联系而不能重新安置它,消费者就不会看到消息.可能吗?
是的,这可以使用生产者中的交易.您启动事务,发布所有消息,然后提交事务.所有消息一次写入Kafka,但新READ_COMMITTED模式的消费者只能在生产者提交事务后看到消息,并且特殊事务标记被添加到Kafka提交日志中.
不处于READ_COMMITTED模式的消费者可以看到消息,因为它们是单独写入的,即使它们可能尚未(或曾经)提交过.
开放事务可以保持未提交的时间有一个限制,因此最终如果生产者死亡并且没有明确地结束事务,它将超时并且回滚和READ_COMMITTED消费者永远不会看到这些消息.
| 归档时间: |
|
| 查看次数: |
2746 次 |
| 最近记录: |