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

檢視全部