Apache Kafka 3.0 發佈,離徹底去掉ZooKeeper更進一步

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Apache Kafka 3.0.0 正式發佈,這是一個重要的版本更新,這次發佈爲Kafka徹底"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/article\/FqFmCLNf0Xz9PzPNS17Y","title":"xxx","type":null},"content":[{"type":"text","text":"去掉ZooKeeper"}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"鋪平了道路。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"因此,在此背景下該版本中最突出的改進是 Kafka 的共識機制 "},{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/article\/PHF3gFjUTDhWmctg6kXe","title":"xxx","type":null},"content":[{"type":"text","text":"KRaft"}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 也就不足爲奇了,該機制仍處於預覽階段。未來,KRaft 將作爲Apache Kafka 的內置共識機制將取代 Apache ZooKeeper,該版本目前提供了 KRaft 控制器和代理來爲“名爲 __cluster_metadata 的元數據主題分區生成、複製和加載快照”,也就是說這是 Kafka 集羣存儲、複製元數據的地方。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"爲了順利切換到 KRaft,Kafka 團隊重新設計了該工具的元數據記錄類型,並讓 Kafka Controller 負責在 ZooKeeper 和 KRaft 模式下生成生產者 ID。同時,從 3.0 開始,Kafka 生產者默認開啓冪等性和所有副本的交付確認。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"除此之外,Kafka 團隊還嘗試調整了當前的用例,這些用例以前很難實現。例如,監控任務通常會產生一些開銷,因爲無法爲多個消費者組獲取偏移量。這在 3.0 版的 OffsetFetch API 中得到了糾正。同時對 AdminClient.listOffsets 的改進將幫助用戶測試分區的活躍度;它現在提供了查詢選項,以返回分區中時間戳和具有最大時間戳的記錄的偏移量。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Kafka Streams 的 TaskMetadata 接口提供了三種新方法來檢查 commitedOffsets、endOffsets 和 timeCurrentIdlingStarted,這也有助於跟蹤系統的健康狀況。值得注意的增強功能還可以在數據集成中心 Kafka Connect 中找到,在 3.0 中,KIP-745使用戶能夠通過一次調用重新啓動所有或僅失敗的連接器Connector和Task實例。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"由於這是一個主要版本,還有一些更改可能會導致舊代碼無法正常工作。其中包括棄用 Streams 中寬限期的 24 小時默認值,並用明確的新方法替換它們,這些方法要求用戶要麼將所述時間段設置爲零,要麼接受寬限期持續時間的自定義值。 "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Kafka 團隊也開始了一些清理工作,因此用戶應該爲即將到來的“警告”做好準備。3.0版本中棄用對 Java 8 和Scala 2.12的支持,並且將在 v4.0 中完全刪除。除此之外,維護者還決定棄用消息格式 v0 和 v1,將消息格式 v2 作爲默認消息格式。之後只能通過轉換實現 v0 和 v1 的數據向後兼容性,但這會影響性能,因此建議大家進行升級。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"更多詳細信息見"},{"type":"link","attrs":{"href":"https:\/\/blogs.apache.org\/kafka\/entry\/what-s-new-in-apache6","title":null,"type":null},"content":[{"type":"text","text":"Kafka的博客"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章