退避延迟精度
概览和保证
所有消息处理和退避都由消费者线程处理,因此,延迟精度是在尽力而为的基础上保证的。如果某个消息的处理时间长于同一消费者下一个消息的退避周期,那么下一个消息的延迟将高于预期。此外,对于短延迟(大约 1 秒或更短),线程必须执行的维护工作,例如提交偏移量,可能会延迟消息处理的执行。如果重试主题的消费者正在处理多个分区,精度也可能受到影响,因为我们依赖于从轮询中唤醒消费者并具有完整的 pollTimeout 来进行时间调整。
尽管如此,对于处理单个分区的消费者,在大多数情况下,消息的处理应该大约在其精确到期时间发生。
保证消息永远不会在其到期时间之前被处理。 |