在我的应用程序中,当我发送消息时,我在回调中使用元数据来保存记录的偏移量,以备将来使用。但是,有时metadata.offset()返回-1,这会使以后变得很难。 为什么会发生这种情况,并且有一种方法可以获取偏移量而无需消耗主题来查找偏移量。
编辑:我当前位于ack 0,当我传递给ack 1时,我不再有这些错误,但是我的性能急剧下降。从10万条消息在10秒到1分钟内。
答案 0 :(得分:0)
acks = 0如果设置为零,那么生产者将不等待任何 来自服务器的确认。该记录将立即 添加到套接字缓冲区并认为已发送。不能保证 使服务器在这种情况下已收到记录,并且 重试配置不会生效(因为客户端不会 一般都知道有任何故障)。 为每个人返还的偏移量 记录将始终设置为-1。
这不是完全正确,因为在100k消息中,我得到95k的偏移量,但我认为这是正常的。 仍然需要寻找其他解决方案来获得ack = 0的偏移量