在Spring Kafka中,如果设置了spring.kafka.listener.ack-mode=time
,不会自动重试。
spring.kafka.listener.ack-mode
属性用于指定监听器的应答模式,它有以下几种取值:
record
:在接收到消息后立即发送确认。这是最常见的模式,用于大多数情况。batch
:在接收到一批消息后发送确认。通常与spring.kafka.listener.ack-mode
属性AckMode.RECORD
配合使用,以便在消费一批消息后发送确认。time
:在接收到消息后,等待一段时间后发送确认。这个时间由spring.kafka.listener.ack-time
属性指定,默认为5000毫秒(即5秒)。count
:在接收到一定数量的消息后发送确认。这个数量由spring.kafka.listener.ack-count
属性指定,默认为1。上述的四种应答模式都不会自动进行重试。如果需要进行重试,可以通过其他机制实现,例如使用@Retryable
注解或者自定义异常处理器来捕获并重试处理失败的消息。
对于Kafka相关的产品和产品介绍,推荐使用腾讯云的消息队列 CKafka
(https://cloud.tencent.com/product/ckafka)作为推荐的产品。它是一个高性能、可靠、可弹性扩展的分布式消息队列服务,支持大规模消息集群的分布式消息传递,并具备高并发、高可用、可靠消息投递的特点。在使用消息队列 CKafka
时,可以根据具体需求选择合适的应答模式来满足业务需求。
领取专属 10元无门槛券
手把手带您无忧上云