重磅!Apache Kafka 3.3 正式釋出!

danny_2018發表於2022-10-09

我們很自豪地代表 Apache Kafka 社群宣佈釋出 Apache Kafka® 3.3。3.3 版本包含許多新功能和改進。這篇博文將重點介紹一些更突出的功能。有關更改的完整列表,請務必檢視發行說明。

幾年來,Apache Kafka 社群一直在開發一種使用自我管理後設資料執行的新方法。這種新的 KRaft 社群模式提高了可擴充套件性和彈性,同時實現了 Apache Kafka 的部署。另外還有在每個 Apache Kafka 周圍執行 Apache ZooKeeper™ 叢集的需要。

3.3 版本將 KRaft 模式標記僅作為適用於新叢集的生產資訊,請參考:KIP-833。

Kafka Broker Controller Producer Consumer 和 Admin Client

KIP-833:將 KRaft 標記為生產就緒

KIP將 KRaft 標記為可用於 Kafka 3.中的新近 8-3 版本的 Apache K3 的生產版本。IP -833 KRaft 3.5.0 標記為連線 KRaft 的版本。版本。

KIP-778:KRaft 到 KRaft 的升級

KIP- 7788 允許升級 KRaft 叢集,而不是臭名昭著的雙滾模式。為了能夠升級在 KRaft 的下模式,需要能夠升級和代理 Apache 的 RPC,直到我們允許使用新的 RPC 和格式記錄叢集升級。

KIP-841:不應允許受保護的副本加入 KRaft 中的 ISR

KIP-841提高了乾淨關閉期間主題執行的保護功能。它透過強制以下不變數來完成點:1)受或受控關閉的副本不符合ISR的條件;和2)受保護的或受控的受控的副本沒有資格成為領導者關閉。

KIP-836:公開叢集後設資料的複製資訊

KIP-836將描述 Quorum API 顯示給管理員客戶端,並新增每個副本到響應中。

KIP-835:監控 KRaft 控制器 Quorum 健康狀況

使用 KRaft 模式,Apache Kafka 向叢集新增了一個新的控制器仲裁。這些控制器需要能夠提交記錄以使 Apache Kafka 可用。KIP-835透過週期性地增加高水位線和最後提交的偏移量來衡量可用性。監控服務可以比較這些最後提交的偏移量是否正在推進。他們還可以使用這些指標來檢查所有代理和控制器是否相對在彼此的偏移量內。

KIP-859:新增後設資料日誌處理錯誤相關指標

在 KRaft 模式下,叢集後設資料複製日誌是叢集中所有伺服器的後設資料相關資訊的來源。處理此日誌時發生的任何錯誤都可能導致伺服器的記憶體狀態變得不一致。重要的是要使此類錯誤可見。KIP-859公開了可以監控的指標,以便可以發現受影響的伺服器。

KIP-794:嚴格統一的粘性分割槽

KIP-794改進了預設分割槽器,以在健康的代理之間分批均勻分佈非鍵控資料,而向不健康的代理分配更少的資料。例如,具有異常行為的生產者工作負載的 p99 延遲從 11 秒減少到 154 毫秒。

KIP-373:允許使用者為其他使用者建立委託令牌

KIP-373允許使用者為其他使用者建立委託令牌。這允許以下用例:1) 指定的超級使用者可以建立令牌而不需要單獨的使用者憑據;2)指定的超級使用者可以代表另一個使用者執行kafka客戶端。

KIP-831:為日誌恢復進度新增指標

日誌恢復是 Kafka 伺服器啟動時觸發的過程,如果它之前有過不乾淨的關閉。它用於確保日誌處於良好狀態並且沒有損壞。KIP-831公開指標以允許使用者監控日誌恢復的進度。

KIP-709:擴充套件 OffsetFetch RPC 以接受多個組 id

KIP-709簡化了從消費者組獲取偏移量的過程,以便可以發出單個請求來獲取多個組的偏移量。這具有以下優點:1)減少了請求開銷;2)它簡化了客戶端程式碼。

KIP-827:透過 Kafka API 公開日誌目錄的總空間和可用空間

KIP-827公開了一個 RPC,用於查詢每個日誌目錄的磁碟總大小和磁碟使用大小。這對於有興趣在不依賴公開指標的情況下查詢此資訊的工具很有用。

KIP-851:將 requireStable 標誌新增到 ListConsumerGroupOffsetsOptions

KIP-851在管理客戶端中新增了選項,用於在使用恰好一次語義時查詢提交的偏移量。

KIP-843:向 Metrics 新增 addMetricIfAbsent 方法

KIP-843允許指標 API 以原子方式查詢指標(如果存在)或建立指標(如果不存在)。

KIP-824:允許轉儲段日誌限制輸出中的批次

KIP-824允許將 kafka-dump-logs 工具配置為僅掃描和列印日誌段開頭的記錄,而不是整個日誌段。

Kafka Streams

KIP-846:Streams 中消費/生產吞吐量的源/接收節點指標

藉助當今普通消費者中可用的指標,Kafka Streams 的使用者可以在子拓撲級別推匯出其應用程式的消耗吞吐量,但對於產生的吞吐量而言,情況並非如此。

KIP-846填補了這一空白,並透過引入兩個新的接收節點吞吐量指標,為終端使用者提供了一種計算每個子拓撲的生產率的方法。儘管可以使用現有的客戶端級別指標推匯出消耗的吞吐量,但 KIP-846 還為源節點的吞吐量新增了兩個新指標,以提供與匯節點處新新增的指標同樣細粒度的指標範圍,以及以簡化使用者體驗。

KIP-834:暫停/恢復 KafkaStreams 拓撲

KIP-834增加了暫停和恢復拓撲的能力。這可用於減少使用的資源或修改資料管道。暫停的拓撲跳過處理、標點和備用任務。對於分散式 Streams 應用程式,每個例項都需要單獨暫停和恢復。

KIP-820:合併 KStream 的 transform() 和 process() 方法

KIP-820泛化了 KStream API 以整合 Transformers(可以轉發結果)和 Processors(不能轉發)。該更改使用了新的型別安全處理器 API。這簡化了 Kafka Streams,使其更易於使用和學習。

KIP-812:引入另一種形式的 KafkaStreams.close() API,強制成員離開消費者組

KIP-812可以透過強制成員離開消費者組來有效地永久關閉流。

Kafka Connect

KIP-618:source聯結器的Exactly Once的支援

KIP-618為源聯結器新增了一種語義支援。Connect 框架已擴充套件為以原子方式將源記錄及其源偏移量寫入 Apache Kafka,並防止殭屍任務向 Apache Kafka 生成資料。

總結

除了上面列出的所有 KIP,Apache Kafka 3.3 還包含修復和改進。瞭解更多:

有關更改的完整列表, 請參閱3.3.0和3.3.1的發行說明

觀看影片

收聽播客

下載Apache Kafka 3.3並開始使用

來自 “ Flink ”, 原文作者:Flink;原文連結:https://mp.weixin.qq.com/s/h8I9DVMmKlAgKIL6w427Yg,如有侵權,請聯絡管理員刪除。

相關文章