退避延迟精度
概述与保证
所有消息处理和退避均由消费者线程处理,因此延迟精度仅尽力保证。如果一条消息的处理时间超过了该消费者下一条消息的退避时长,那么下一条消息的延迟将高于预期。此外,对于较短的延迟(约 1 秒或更短),线程必须执行的维护工作(例如提交偏移量)可能会延迟消息处理的执行。如果重试主题的消费者正在处理多个分区,精度也可能受到影响,因为我们依赖将消费者从轮询中唤醒并拥有完整的 pollTimeout 来进行时序调整。
也就是说,对于处理单个分区的消费者,在大多数情况下,消息的处理应大致在其确切的到期时间发生。
important
可以保证一条消息绝不会在其到期时间之前被处理。