从2017年6月28日发布的Kafka(0.11.0.0)的最新版本开始,kafka团队提供了新功能,以支持一次交付。
下载最新版本后,我尝试按照Producer configs中的说明配置Producer(通过kafka-console-producer.sh
脚本执行):我设置了enable.idempotence=true
和transactional.id=0A0A
。
问题在于,当我启动制作人时,我得到一个ConfigException
,说acks
必须设置为all
或-1
(即使我将其设置为我作为参数传递给控制台脚本的producer.properties文件。)
可能是使用控制台脚本无法设置幂等性的根本原因?此外,有没有办法通过提供的控制台脚本进行原子事务生成消息?
详细信息:
在合成中,所采用的解决方案基于两个主要概念:
isolation.level=read_committed
属性,我们现在只能在事务提交后才能读取消息。答案 0 :(得分:5)
控制台生产者设置自己的默认值。尝试添加--request-required-acks -1
或test="http://localhost:8080/course-single.html"
以将acks设置为all来代替默认值1。