領先一步
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
方法的死信佇列主題。
這允許在重試失敗的記錄時,處理來自相同分割區的後續記錄。當然,如果需要嚴格排序,則應使用傳統的重試。
框架會負責佈建主要主題和延遲主題。延遲主題上的消費者會暫停,直到目前時間超過記錄時間戳記加上延遲。
有關此版本中所有變更的資訊,請參閱新功能。