有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

生产者重试时,分区中的java Kafka消息排序

根据生产者配置,有:重试次数最大值。航班请求。每连接。假设重试>;0和max.in。航班请求。每连接>;一,

在主题的一个分区内,消息是否会按顺序到达(例如,如果第一条消息重试,但第二条消息在第一次尝试时被传递到代理)

或者,无序只发生在主题的多个分区中,但分区内的顺序保持不变吗


共 (2) 个答案

  1. # 1 楼答案

    根据最新的更新文档,你最多可以拥有5 max.in.flight.requests.per.connection,卡夫卡可以维持这方面的秩序

  2. # 2 楼答案

    如果将retries设置为大于0,将max.in.flight.requests.per.connection设置为大于1,则即使是针对同一分区的,yes消息也可能在代理上无序到达

    例如,如果消息正确添加到Kafka日志中,并且在将响应发送回客户端时发生错误,则也可以有重复消息

    由于Kafka 0.11,您可以使用幂等生产者来解决这两个问题。见http://kafka.apache.org/documentation/#semantics