Kafka2.6.0發布——性能大幅提升


近日Kafka2.6版本發布,距離2.5.0發布只過去了不到四個月的時間。

Kafka 2.6.0包含許多重要的新功能。以下是一些重要更改的摘要:

  • 默認情況下,已為Java 11或更高版本啟用TLSv1.3
  • 性能顯着提高,尤其是當代理具有大量分區時
  • 擴展Kafka Streams的應用程序更便捷
  • Kafka Streams支持更改時發出
  • 新的metrics可提供更好的運營洞察力
  • 配置為進行連接時,Kafka Connect可以自動創建Topic
  • 改進了Kafka Connect中接收器連接器的錯誤報告選項
  • Kafka Connect中的新過濾器和有條件地應用SMT
  • “ client.dns.lookup”配置的默認值現在為“ use_all_dns_ips”。
  • 將Zookeeper升級到3.5.8

新功能

  • 添加KStream#repartition操作
  • 使SSL上下文/引擎配置可擴展
  • 默認情況下啟用TLSv1.3,並禁用某些較舊的協議
  • 有條件地應用SMT
  • 向流指標添加任務級活動進程比率
  • 重構主循環以一次處理一個任務的多個記錄

改善

  • 增強了TransformerSupplier / ProcessorSupplier
  • 清理任務管理
  • 將“ onAssignment”流與“ partitionsAssigned”任務創建合並
  • 公開磁盤讀寫指標
  • 允許消費者明確觸發重新平衡
  • 將gradle更新為6.0+
  • 支持Java 14
  • 將默認版本切換到Scala 2.13
  • -改進“ matchingAcls”的性能
  • 控制台生產者支持client.id的設置

升級指南:

如果要從2.1.x之前的版本升級,請參閱以下注釋,以了解用於存儲使用者偏移量的架構的更改。將inter.broker.protocol.version更改為最新版本后,將無法降級到2.1之前的版本。

對於滾動升級:

  1. 在所有代理上更新server.properties並添加以下屬性。CURRENT_KAFKA_VERSION指的是您要升級的版本。CURRENT_MESSAGE_FORMAT_VERSION是指當前使用的消息格式版本。如果以前覆蓋了消息格式版本,則應保留其當前值。或者,如果要從0.11.0.x之前的版本升級,則應將CURRENT_MESSAGE_FORMAT_VERSION設置為與CURRENT_KAFKA_VERSION相匹配。

    • inter.broker.protocol.version = CURRENT_KAFKA_VERSION(例如2.52.4等)
    • log.message.format.version = CURRENT_MESSAGE_FORMAT_VERSION
  2. 如果要從0.11.0.x或更高版本升級,並且尚未覆蓋消息格式,則只需要覆蓋代理間協議版本。

    • inter.broker.protocol.version = CURRENT_KAFKA_VERSION(例如2.52.4等)
  3. 一次升級一個代理:關閉代理,更新代碼,然后重新啟動。完成此操作后,代理將運行最新版本,並且您可以驗證集群的行為和性能是否符合預期。如果有任何問題,此時仍然可以降級。

  4. 驗證集群的行為和性能后,請通過編輯協議版本inter.broker.protocol.version並將其設置為來更改協議版本 2.6

  5. 逐一重新啟動代理,以使新協議版本生效。代理開始使用最新的協議版本后,將無法再將群集降級到較舊的版本。

  6. 如果您已按照上述說明覆蓋了消息格式版本,則需要再次滾動重啟以將其升級到最新版本。一旦所有(或大多數)使用者都升級到0.11.0或更高版本,則在每個代理上將log.message.format.version更改為2.6,然后逐一重新啟動它們。請注意,不再維護的較舊的Scala客戶端不支持0.11中引入的消息格式,為避免轉換成本必須使用較新的Java客戶端。

2.6.0注意點

Kafka Streams添加了一種新的處理模式(需要Broker 2.5或更高版本),該模式使用完全一次的保證提高了應用程序的可伸縮性。

缺省情況下,Java 11或更高版本已啟用TLSv1.3。如果客戶端和服務器均支持TLSv1.3,則將協商該協議,否則將回退至TLSv1.2。

缺省情況下,Java 11或更高版本已啟用TLSv1.3。如果客戶端和服務器均支持TLSv1.3,則將協商該協議,否則將回退至TLSv1.2。

NotLeaderForPartitionException已棄用,並已替換為NotLeaderOrFollowerException。如果代理不是副本,則獲取請求和僅用於領導者或跟隨者的其他請求將返回NOT_LEADER_OR_FOLLOWER(6)而不是REPLICA_NOT_AVAILABLE(9),以確保重新分配期間的此暫時錯誤由所有客戶端作為可重試的異常進行處理。

更多Flink,Kafka,Spark等相關技術博文,科技資訊,歡迎關注實時流式計算 公眾號后台回復 “電子書” 下載300頁Flink實戰電子書


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM