Kafka 0.8 生产者,使用“request.required.acks”属性
Posted
技术标签:
【中文标题】Kafka 0.8 生产者,使用“request.required.acks”属性【英文标题】:Kafka 0.8 producer, use of "request.required.acks" property 【发布时间】:2013-08-30 18:32:25 【问题描述】:来自生产者配置下的0.8 Documentation
属性request.required.acks
值控制何时来自代理的
producer receives an acknowledgement
。典型值为
(1) 0,这意味着生产者从不等待经纪人的确认
(2) 1,表示leader replica收到数据后的
producer gets an acknowledgement
(3) -1,表示
producer gets an acknowledgement
在所有同步副本都收到数据后
当request.required.acks
的值为1
时,我如何在生产者中收到此确认。 producer.send(MessageKey)
是一个空白,我找不到任何选项来检索它。
【问题讨论】:
只是猜测,但是如果发送没有收到确认可能会引发异常? 【参考方案1】:生产者发送的 API 有很多不足之处,尤其是在异步模式下。这些确认对生产者对象的用户是隐藏的。如果他们失败了,你最终会看到一个异常。
异步情况下的问题是你不知道失败的批处理是从什么时候开始的,所以如果你想稍后重试发送,就会涉及一些猜测。
似乎有计划在未来的版本(> 0.8.0)中对此进行改进。
【讨论】:
以上是关于Kafka 0.8 生产者,使用“request.required.acks”属性的主要内容,如果未能解决你的问题,请参考以下文章
java 嵌入Kafka + Zookeeper用于测试目的。使用Apache Kafka 0.8进行测试
java 嵌入Kafka + Zookeeper用于测试目的。使用Apache Kafka 0.8进行测试
apache kafka配置中request.required.acks含义