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