Kafka-幂等生产者

rbpvctlc  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(355)

从2017年6月28日发布的最新版本kafka(0.11.0.0)开始,kafka团队提供了新功能,以支持一次交付。下载最新版本后,我尝试配置producer(通过 kafka-console-producer.sh 脚本)如producer configs:i set中所述 enable.idempotence=true 以及 transactional.id=0A0A .
问题是当我开始制作的时候 ConfigException 这么说 acks 必须设置为 all 或者 -1 (即使我在producer.properties文件中设置了它,我将它作为参数传递给控制台脚本)。
是否可能是无法使用控制台脚本设置幂等性的根本原因?此外,有没有一种方法可以通过提供的控制台脚本来执行生成消息的原子事务?
细节:
实施细节和动机
一次语义
在本文中,采用的解决方案基于两个主要概念:
幂等生产者只能写一次特定的消息,这得益于生产者配置中引入的事务ID,在单个主题有多个分区的情况下也能保证原子性属性);
在消费者方面,通过 isolation.level=read_committed 属性,我们现在只能在事务提交后读取消息。

bwntbbo3

bwntbbo31#

控制台生产者设置自己的默认值。尝试添加 --request-required-acks "all" 或者 --request-required-acks -1 将acks设置为all以代替默认值1。

相关问题