Spring for Apache Kafka 2.7.0 发布

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

我很高兴地宣布 Spring for Apache Kafka 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 社区中所有即将举行的活动。

查看全部