最新動態?

3.3 版本相對於 3.2 版本的新特性

本節介紹從 3.2 版本到 3.3 版本所做的更改。有關早期版本的更改,請參閱變更歷史

DLT 主題命名約定

DLT 主題的命名約定已標準化,統一使用“-dlt”字尾。此更改可確保相容性,並避免在不同重試方案之間切換時發生衝突。希望保留“.DLT”字尾行為的使用者需要透過顯式設定相應的 DLT 名稱屬性來啟用此功能。

增強的消費者組 Seek 操作

ConsumerSeekCallback 介面新增了 getGroupId() 方法。此方法可以透過僅針對所需的消費者組來實現更具選擇性的 Seek 操作。AbstractConsumerSeekAware 現在也可以在多組監聽器場景中為每個主題分割槽註冊、檢索和移除所有回撥而不會遺漏。有關更多詳細資訊,請參閱新的 API (getSeekCallbacksFor(TopicPartition topicPartition)getTopicsAndCallbacks())。有關更多詳細資訊,請參閱Seek API 文件

Kafka 監聽器中使用 RecordFilterStrategy 處理空批次的可配置選項

RecordFilterStrategy 現在支援忽略過濾後產生的空批次。這可以透過重寫預設方法 ignoreEmptyBatch() 進行配置,該方法預設為 false,以確保即使所有 ConsumerRecords 都被過濾掉,也會呼叫 KafkaListener。有關更多詳細資訊,請參閱訊息接收過濾文件

ConcurrentContainerStoppedEvent

ConcurentContainerMessageListenerContainer 現在在其所有子容器停止時會發出一個 ConcurrentContainerStoppedEvent 事件。有關更多詳細資訊,請參閱應用事件ConcurrentContainerStoppedEvent 的 Javadoc 文件。

回覆中的原始記錄鍵

使用 ReplyingKafkaTemplate 時,如果請求中的原始記錄包含鍵 (key),則該鍵也會成為回覆的一部分。有關更多詳細資訊,請參閱參考文件的傳送訊息部分。

在 DeadLetterPublishingRecovererFactory 中自定義日誌記錄

使用 DeadLetterPublishingRecovererFactory 時,使用者應用可以重寫 maybeLogListenerException 方法來自定義日誌記錄行為。

在 KafkaAdmin 中自定義 Admin 客戶端

擴充套件 KafkaAdmin 時,使用者應用可以重寫 createAdmin 方法來自定義 Admin 客戶端的建立。

自定義 Kafka Streams 的實現

使用 KafkaStreamsCustomizer 時,現在可以透過重寫 initKafkaStreams 方法返回 KafkaStreams 物件的自定義實現。

批次監聽器的 KafkaHeaders.DELIVERY_ATTEMPT 頭

使用 BatchListener 時,ConsumerRecord 的頭部欄位中可以包含 KafkaHeaders.DELIVERY_ATTMPT 頭。如果錯誤處理器將 DeliveryAttemptAwareRetryListener 設定為重試監聽器,則每個 ConsumerRecord 都會帶有投遞嘗試次數頭。有關更多詳細資訊,請參閱批次監聽器的 Kafka 頭

Kafka 指標監聽器和 TaskScheduler

MicrometerProducerListenerMicrometerConsumerListenerKafkaStreamsMicrometerListener 現在可以配置 TaskScheduler。有關更多資訊,請參閱 KafkaMetricsSupport 的 JavaDocs 文件和Micrometer 支援