領先一步
VMware 提供培訓和認證,以加速您的進步。
瞭解更多我很高興地宣佈 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
方法的死信主題。
這允許在重試失敗記錄時處理來自同一分割槽的後續記錄。 當然,如果需要嚴格的排序,則應使用傳統的重試。
該框架負責提供主主題和延遲主題。 延遲主題上的消費者將暫停,直到當前時間超過記錄時間戳加上延遲。
有關此版本中所有更改的資訊,請參見新增功能。