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”属性的主要内容,如果未能解决你的问题,请参考以下文章

获取 Kafka 压缩消息大小

java 嵌入Kafka + Zookeeper用于测试目的。使用Apache Kafka 0.8进行测试

java 嵌入Kafka + Zookeeper用于测试目的。使用Apache Kafka 0.8进行测试

apache kafka配置中request.required.acks含义

apache kafka配置中request.required.acks含义

kafka(0.8版本)删除主题(没有在配置文件中配置的情况下)