Apache Kafka 版 Spring 2.7.0 发布

工程 | Gary Russell | 2021年4月14日 | ...

我很高兴地宣布 Apache Kafka 版 Spring 2.7.0 现已发布。

此版本包含一项重大增强功能,这是社区贡献的结果。失败的投递可以转发到一系列主题,以便延迟重新投递。

最好通过示例来描述

@RetryableTopic(attempts = "5", backoff = @Backoff(delay = 1000, multiplier = 2.0))
@KafkaListener(id = "sk270", topics = "sk270")
public void listen(String in, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic) {
    LOG.info(in + " from " + topic);
    throw new RuntimeException("test");
}

@DltHandler
public void dlt(String in, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic) {
    LOG.info(in + " from " + topic);
}

通过此配置,第一次投递尝试失败,记录将发送到配置为 1 秒延迟的主题。当该投递失败时,记录将发送到延迟 2 秒的主题。当该投递失败时,它将发送到延迟 4 秒的主题,然后是 8 秒延迟,最后发送到死信主题,并使用(可选)的 @DltHandler 方法。

这允许在重试失败的记录的同时处理来自同一分区的后续记录。当然,如果需要严格排序,则应使用传统的重试机制。

框架负责预置主主题和延迟主题。延迟主题上的消费者将暂停,直到当前时间超过记录时间戳加上延迟。

有关此版本中所有更改的信息,请参阅 新增功能

项目页面 | GitHub | 问题 | 文档 | Stack Overflow | Gitter

获取 Spring 电子报

通过 Spring 电子报保持联系

订阅

领先一步

VMware 提供培训和认证,助您快速提升技能。

了解更多

获取支持

Tanzu Spring 通过一个简单的订阅提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部