Vitess 23.0.0 发布

vitess 23.0.0 发布

Vitess 23.0.0 正式上线,作为该项目的最新主版本,带来了更现代化的默认配置、增强的运维能力以及更丰富的监控数据支持。在 Vitess 22 系列稳定表现的基础上,23.0.0 版本进一步优化了部署体验与系统可观测性,助力用户更加高效地扩展 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 升级)

    此操作仅需执行一次,具体步骤如下(详见官方文档):

    1. 在自定义 .cnf 配置文件中添加 innodb_fast_shutdown=0
    2. 应用配置并等待所有 Pod 恢复正常状态。
    3. 将镜像切换至 vitess/lite:v23.0.0
    4. 删除 innodb_fast_shutdown=0 配置项并重新应用。

新增及优化监控指标

  • VTGate 新增 TransactionsProcessed 指标,支持按 ShardType 维度统计事务处理情况。
  • VTOrc 新增 SkippedRecoveries 指标,记录跳过的恢复操作,并提供 RecoveryName、Keyspace、Shard、Reason 四个维度分析原因。

这些指标显著提升了系统的透明度,使故障诊断和性能调优更加高效。

废弃与删除项

  • VTOrc 指标名称变更:DiscoverInstanceTimingsDiscoveryInstanceTimings
  • 移除已弃用的 VTGate 指标:
    QueriesProcessedQueriesRoutedQueriesProcessedByTableQueriesRoutedByTable
  • 删除 VTOrc 的 /api/aggregated-discovery-metrics API 接口。

建议用户及时更新监控面板和告警规则,避免因指标缺失导致误报。

拓扑管理与 VTOrc 改进

  • --consul_auth_static_file 标志现要求 JSON 文件中至少包含一条认证信息,增强安全性。
  • VTOrc 现支持动态控制基于 EmergencyReparentShard 的恢复流程,提升容灾灵活性。

此类改进有助于构建更安全、更可控的集群环境。

VTTablet 与 CLI / Docker 相关更新

  • 默认身份验证插件调整为 caching_sha2_password,符合现代 MySQL 安全标准。
  • 改进了 MySQL 时区环境变量的传递机制。
  • gRPC tabletmanager 客户端错误提示更清晰,便于定位通信问题。
  • Docker 构建流程与启动参数进一步规范化,提升一致性。

升级注意事项

  • 若使用了已被移除的指标,请尽快迁移到新的替代指标(如使用 TransactionsProcessed 替代旧的 Queries 相关指标)。
  • Operator 用户在升级 MySQL 从 8.0 至 8.4 时,必须严格遵循上述四步流程。
  • 若在 VTGate 中手动设置了 mysql_server_version,请确认其值与后端真实 MySQL 版本一致。
  • 建议先在非生产环境中测试涉及重亲和、故障恢复或 Consul 集成的相关变更。

后续发展方向

项目团队将持续推进 Vitess 的演进路线:

  • 加强对 MySQL 8.4 的全面支持。
  • 提升 VReplication、MoveTables 和 Resharding 功能的可观测性。
  • 持续优化 Operator 的稳定性与用户体验。

源码地址:点击下载

网友留言(0 条)

发表评论