5.3. 订购的交付
幂等的生成者会避免在消息发送一次时重复。ID 和序列号分配给消息,以确保发送顺序,即使出现失败情况。如果您使用 acks=all
用于数据一致性,使用 idempotency 对排序的交付有意义。默认情况下,为制作者启用 idempotency。启用 idempotency 后,您可以将并发 in-flight 请求的数量设置为最多 5 个,以便保留消息排序。
使用 idempotency 排序交付
# ... enable.idempotence=true 1 max.in.flight.requests.per.connection=5 2 acks=all 3 retries=2147483647 4 # ...
如果您选择不使用 acks=all
并因为性能成本而禁用 idempotency,请将 in-flight (未确认)请求数量设置为 1 来保留顺序。否则,在 Message-A 已写入代理后,Message- A 才会成功。
在没有 idempotency 的情况下排序交付
# ... enable.idempotence=false 1 max.in.flight.requests.per.connection=1 2 retries=2147483647 # ...