此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring for Apache Kafka 3.2.1! |
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring for Apache Kafka 3.2.1! |
若要访问阻塞和非阻塞传递尝试,请将以下标头添加到方法签名中:@KafkaListener
@Header(KafkaHeaders.DELIVERY_ATTEMPT) int blockingAttempts,
@Header(name = RetryTopicHeaders.DEFAULT_HEADER_ATTEMPTS, required = false) Integer nonBlockingAttempts
仅当将 的 deliveryAttemptHeader 设置为 时,才会提供阻止传递尝试。ContainerProperties
true
请注意,非阻塞尝试将用于初始投放。null
从版本 3.0.10 开始,提供了一个方便的版本,以便更轻松地访问这些标头;访问器可以作为 Listener 方法的参数提供:KafkaMessageHeaderAccessor
@RetryableTopic(backoff = @Backoff(...)) @KafkaListener(id = "dh1", topics = "dh1") void listen(Thing thing, KafkaMessageHeaderAccessor accessor) { ... }
使用 和 获取值。
如果未启用阻止重试,访问器将抛出一个;对于非阻塞重试,访问器将返回初始传送。accessor.getBlockingRetryDeliveryAttempt()
accessor.getNonBlockingRetryDeliveryAttempt()
IllegalStateException
1