5 apache-kafka kafka-python kafka-producer-api
如果我在Producer中将Kafka配置参数设置为:
1. retries = 3
2. max.in.flight.requests.per.connection = 5
Run Code Online (Sandbox Code Playgroud)
那么一个分区内的消息可能不在send_order中.
Kafka是否采取任何额外步骤以确保分区中的消息仅保留在已发送的顺序中或者使用上述配置,可能在分区内出现乱序消息?
ser*_*jja 11
很不幸的是,不行.
使用您当前的配置,由于您retries和max.in.flight.requests.per.connection设置,有可能消息无序到达.
如果retries配置设置为大于0,则在以下情况下将丢失排序(仅使用随机数的示例):
我可能错了,但在这种情况下,即使max.in.flight.requests.per.connection设置为1 ,也可能发生重新排序,如果代理故障转移,您可能会丢失消息顺序,例如批次可以比之前的失败批次更早发送到代理,它应该去经纪人也是.
关于max.in.flight.requests.per.connection并且retries被设置在一起它甚至更简单 - 如果您对经纪人有多个未确认的请求,则第一个失败的请求将无序到达.
但请注意,这仅与消息/批次由于某种原因未能确认的情况(发送给错误的经纪人,经纪人死亡等)有关.
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
1540 次 |
| 最近记录: |