Vitess 23.0.0 發佈 - 新闻 详情

Vitess 23.0.0 現已發佈,這是 Vitess 的最新大版本,帶來了新的默認設置、更好的運維工具以及更精細的監控指標。本次發佈基於 22 版本的堅實基礎,旨在讓部署和可觀測性更順暢,同時繼續自信地橫向擴展 MySQL 工作負載。

對於生產環境中的 Vitess 用户,本次版本有多方面的意義:

  • 默認升級:將默認 MySQL 版本升級到 8.4,確保部署具備未來兼容性。

  • 更好指標:新增的可觀測性讓事務路由、分片行為和恢復動作更清晰,調試和告警更精準。

  • 清理和廢棄:移除舊指標和 API,簡化監控,避免混淆。

  • 運維強化:改進 VTOrc 和拓撲控制,降低大規模集羣風險,提升安全邊界。

Vitess 23 亮點

以下是需要了解的主要改動:

新默認版本

  • vitess/lite:latest 鏡像的默認 MySQL 版本從 8.0.40 升級到 8.4.6。

  • VTGate 默認通告 MySQL 版本為 8.4.6(原為 8.0.40)。如果後端版本不同,請用 mysql_server_version 標誌調整。

  • 重要升級説明(針對 Operator 用户): 升級 MySQL 8.0 到 8.4 時,需:

    僅在跨 8.0 → 8.4 時需要一次,詳見官方發佈説明

    1. 在 YAML 的額外 .cnf 文件中添加 innodb_fast_shutdown=0。

    2. 應用配置並等待所有 pod 健康。

    3. 切換鏡像到 vitess/lite:v23.0.0。

    4. 刪除 innodb_fast_shutdown=0 並重新應用。

新增與改進的指標

  • VTGate 新增指標 TransactionsProcessed(維度:Shard、Type),統計按分片和事務類型處理的事務數量。

  • VTOrc 新增指標 SkippedRecoveries(維度:RecoveryName、Keyspace、Shard、Reason),跟蹤跳過恢復的次數及原因。

這些改進增強了可觀測性,幫助運維更細緻地跟蹤系統行為。

廢棄與移除

  • VTOrc 指標重命名:DiscoverInstanceTimings 改為 DiscoveryInstanceTimings。

  • 移除廢棄的 VTGate 指標:QueriesProcessed、QueriesRouted、QueriesProcessedByTable、QueriesRoutedByTable。

  • 移除 VTOrc API 端點 /api/aggregated-discovery-metrics。

拓撲與 VTOrc 增強

  • --consul_auth_static_file 標誌現在要求 JSON 中至少包含一條憑證。

  • VTOrc 支持動態控制基於 EmergencyReparentShard 的恢復。

這些改動提升了集羣管理的安全性和穩定性。

VTTablet 與 CLI / Docker 更新

  • 託管 MySQL 配置默認改為 caching-sha2-password。

  • MySQL 時區環境變量傳遞改進。

  • gRPC tabletmanager 客户端錯誤處理更清晰。

  • Docker 鏡像工作流及標誌更新,保持一致性。

升級須知

  • 檢查自定義儀表盤:如果用到了被移除的指標,請更新到新指標(如 TransactionsProcessed)。

  • Operator 用户升級 8.0 → 8.4:請嚴格按照四步升級流程操作。

  • 如果在 VTGate 中覆蓋了 mysql_server_version,確保它與後端 MySQL 版本一致。

  • 先在測試環境中驗證涉及重親和、恢復或 Consul 集成的改動。

未來展望

接下來,項目團隊將繼續推動 Vitess 發展:

  • 深化對 MySQL 8.4 的兼容。
  • 擴展 VReplication、MoveTables 和 Resharding 的可觀測性。
  • 持續改進 Operator 的可靠性和易用性。