我正在浏览 kafka 文档并遇到了



我有几个问题。

  • 是否总是保证 M1 的偏移量低于 M2 ?如果 M1 晚于 M2 重试怎么办?
  • 我也从各种文档中了解到,订购是没有保障的,消费者必须自己处理。
  • 最佳答案

    即使只有一个分区,一种可能的情况是:

  • 生产者发送 M1
  • 生产者发送 M2
  • M1 由于某些失败在第一次尝试时没有被确认
  • M2 已交付
  • M1 在后续尝试中交付。

  • 避免这种情况的一种简单方法是通过生产者配置 max.in.flight.requests.per.connection=1

    这当然会影响性能,因此应谨慎使用。

    关于apache-kafka - 卡夫卡排序保证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46127716/

    10-12 18:00