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秒的topic。當該投遞失敗時,記錄將傳送到一個延遲2秒的topic。當該投遞失敗時,它會發送到一個延遲4秒的topic,然後是延遲8秒,最後傳送到一個死信topic,並帶有一個(可選的)@DltHandler方法。

這允許在重試失敗記錄的同時處理同一分割槽中的後續記錄。當然,如果需要嚴格的順序,則應使用傳統的重試機制。

該框架負責提供主topic和延遲topic。延遲topic上的消費者會暫停,直到當前時間超過記錄時間戳加上延遲時間。

有關此版本中所有更改的資訊,請參閱新增功能

專案頁面 | GitHub | 問題 | 文件 | Stack Overflow | Gitter

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有