访问投递尝试

要访问阻挡和非阻挡的投递尝试,请将这些头添加到你的@KafkaListener方法签名:spring-doc.cadn.net.cn

@Header(KafkaHeaders.DELIVERY_ATTEMPT) int blockingAttempts,
@Header(name = RetryTopicHeaders.DEFAULT_HEADER_ATTEMPTS, required = false) Integer nonBlockingAttempts

只有在你设置时才会提供封锁投递尝试容器属性deliveryAttemptHeader totrue.spring-doc.cadn.net.cn

注意,非阻挡尝试将为用于初次交付。spring-doc.cadn.net.cn

从3.0.10版本开始,方便KafkaMessageHeaderAccessor提供以简化访问这些头部;该访问器可以作为监听器方法的一个参数提供:spring-doc.cadn.net.cn

@RetryableTopic(backOff = @BackOff(...))
@KafkaListener(id = "dh1", topics = "dh1")
void listen(Thing thing, KafkaMessageHeaderAccessor accessor) {
    ...
}

accessor.getBlockingRetryDeliveryTry()accessor.getNonBlockingRetryDeliveryTry()为了获取数值。 该访问器会抛出非法州例外如果未启用阻断重试;对于非阻塞重试,访问器返回1用于初次交付。spring-doc.cadn.net.cn