卡夫卡生产者未来的元数据在回调中

时间:2019-01-24 11:48:09

标签: apache-kafka kafka-producer-api

在我的应用程序中,当我发送消息时,我在回调中使用元数据来保存记录的偏移量,以备将来使用。但是,有时metadata.offset()返回-1,这会使以后变得很难。 为什么会发生这种情况,并且有一种方法可以获取偏移量而无需消耗主题来查找偏移量。

编辑:我当前位于ack 0,当我传递给ack 1时,我不再有这些错误,但是我的性能急剧下降。从10万条消息在10秒到1分钟内。

1 个答案:

答案 0 :(得分:0)

  

acks = 0如果设置为零,那么生产者将不等待任何   来自服务器的确认。该记录将立即   添加到套接字缓冲区并认为已发送。不能保证   使服务器在这种情况下已收到记录,并且   重试配置不会生效(因为客户端不会   一般都知道有任何故障)。 为每个人返还的偏移量   记录将始终设置为-1。

这不是完全正确,因为在100k消息中,我得到95k的偏移量,但我认为这是正常的。 仍然需要寻找其他解决方案来获得ack = 0的偏移量