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 社群中所有即將舉行的活動。

檢視全部