gpt4 book ai didi

apache-kafka - Kafka async 和 Kafka sync acks=0 的区别?

转载 作者:行者123 更新时间:2023-12-04 14:56:20 26 4
gpt4 key购买 nike

根据我的阅读,acks=0 的 Kafka 基本上只是将消息推送到生产者缓冲区中。它不等待任何形式的确认。有了这个,我想知道它与异步生产者有何不同? acks 如何影响异步生产者?

最佳答案

卡夫卡生产者
在 Kafka 中,主要分为异步和同步三种生产者。

  • 同步生产者确认 = 0(即发即弃)
  • 同步生产者确认 = 1 或确认 = 所有
  • 异步生产者

  • 同步生产者确认 = 0(即发即弃)
    在 Fire and Forget Scenario 中,我们不会等待任何响应,也不会进行任何重试。因此,无法保证消息是否已送达。所以在这种情况下有
  • 可能丢失消息
  • 高吞吐量
  • 无重试

  • 同步生产者确认 = 1 或确认 = 所有
    acks = 1 同步生产者, 生产者将等待分区领导者的响应。所以只有分区领导代理有保证。但是如果领导者代理崩溃并且没有同步副本,则存在消息丢失的可能性。吞吐量低于 Async 和 Fire and Forget 重试作为生产者重试配置。
    acks = all 同步生产者, 生产者将等待分区的领导者和所有同步副本的响应。所以有分区领导代理和同步副本代理的保证。我们可以通过 Min In sync Replica 确定同步副本的数量配置。吞吐量最低,重试作为生产者重试配置。但最可靠的生产商。
    异步生产者
    Async Producer 与 Fire and Forget Producer 几乎相同,但存在一些差异。它有一个回调函数来获取代理端是否有任何响应。但是生产者并没有等待那个响应,它正在后台发生。因此,不同之处在于如果代理发送一些生产者错误并且有重试,则会有跟踪。由于异步重试,无法保证消息的顺序。
    还有一个配置叫 max.in.flight.requests.per.connection .如果以前的消息没有任何响应,则异步消息数仅限于此数量。因此,如果它已满,则异步生产者将再次被阻止,直到此响应到达生产者为止。
    欲了解更多信息,请参阅
  • kafka-foundation-training/producer-configs
  • kafka-foundation-training/callback-and-acks
  • kafka-acks-explained
  • 关于apache-kafka - Kafka async 和 Kafka sync acks=0 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67924473/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com