|
该版本仍在开发中,尚未被视为稳定。对于最新稳定版本,请使用 Spring for Apache Kafka 4.0.0! |
访问投递尝试
要访问阻挡和非阻挡的投递尝试,请将这些头添加到你的@KafkaListener方法签名:
@Header(KafkaHeaders.DELIVERY_ATTEMPT) int blockingAttempts,
@Header(name = RetryTopicHeaders.DEFAULT_HEADER_ATTEMPTS, required = false) Integer nonBlockingAttempts
只有在你设置时才会提供封锁投递尝试容器属性的 deliveryAttemptHeader totrue.
注意,非阻挡尝试将为零用于初次交付。
从3.0.10版本开始,方便KafkaMessageHeaderAccessor提供以简化访问这些头部;该访问器可以作为监听器方法的一个参数提供:
@RetryableTopic(backOff = @BackOff(...))
@KafkaListener(id = "dh1", topics = "dh1")
void listen(Thing thing, KafkaMessageHeaderAccessor accessor) {
...
}
用accessor.getBlockingRetryDeliveryTry()和accessor.getNonBlockingRetryDeliveryTry()为了获取数值。
该访问器会抛出非法州例外如果未启用阻断重试;对于非阻塞重试,访问器返回1用于初次交付。