生产者重试时,分区中的java Kafka消息排序
根据生产者配置,有:重试次数和最大值。航班请求。每连接。假设重试>;0和max.in。航班请求。每连接>;一,
在主题的一个分区内,消息是否会按顺序到达(例如,如果第一条消息重试,但第二条消息在第一次尝试时被传递到代理)
或者,无序只发生在主题的多个分区中,但分区内的顺序保持不变吗
你可以在下面搜索框中键入要查询的问题!
根据生产者配置,有:重试次数和最大值。航班请求。每连接。假设重试>;0和max.in。航班请求。每连接>;一,
在主题的一个分区内,消息是否会按顺序到达(例如,如果第一条消息重试,但第二条消息在第一次尝试时被传递到代理)
或者,无序只发生在主题的多个分区中,但分区内的顺序保持不变吗
# 1 楼答案
根据最新的更新文档,你最多可以拥有5
max.in.flight.requests.per.connection
,卡夫卡可以维持这方面的秩序# 2 楼答案
如果将
retries
设置为大于0,将max.in.flight.requests.per.connection
设置为大于1,则即使是针对同一分区的,yes消息也可能在代理上无序到达例如,如果消息正确添加到Kafka日志中,并且在将响应发送回客户端时发生错误,则也可以有重复消息
由于Kafka 0.11,您可以使用幂等生产者来解决这两个问题。见http://kafka.apache.org/documentation/#semantics