kafka异步发送也存在消息重复的可能

遇到一个业务上的情况,在压力很大的情况下,某个topic的消息出现了小部分的冗余,发送端采用async模式。不确定kafka的async模式发送消息是否也会重试,文档里提到async模式发送增加了丢消息的可能,不知道message.send.max.retries参数是否也会起作用,群里讨论了一下,晚上跟踪了一下代码发现也是有 retry 的。

kafka.producer.async.DefaultEventHandlerhandle方法里

while (remainingRetries > 0 && outstandingProduceRequests.size > 0) {
  ......
}

看来不论同步还是异步发送,消息重复的可能都是存在的。

1 thought on “kafka异步发送也存在消息重复的可能

  1. 消息重还好处理消费时业务上保障,但异步序列化失败就丢消息比较蛋疼了

Leave a Reply

Your email address will not be published. Required fields are marked *