Mycat3.0 架构设计

状态: 本文档为设计阶段文档,内容可能随时更新。

设计哲学

Mycat3.0 代号 Aicat (AI-powered Mycat),在 Mycat1.6 和 Mycat2 的基础上,引入三大核心设计理念:

  • AI First: 将AI能力深度融入查询优化、容量规划和运维管理中
  • Cloud Native First: 从设计之初就面向云原生,支持Kubernetes和服务网格
  • Multi-Model First: 统一支持关系型、文档型、时序型和图数据模型

核心架构层次

┌───────────────────────────────────────────────────────┐
│                  Access Layer                          │
│   MySQL Protocol | PostgreSQL Protocol | gRPC | REST  │
└───────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────┐
│               Management Layer                         │
│     Cluster Manager | Meta Manager | Config Center     │
└───────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────┐
│            Query Optimization Layer                    │
│  AI Optimizer | Cost Optimizer | Rule Optimizer | Cache│
└───────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────┐
│               Execution Layer                          │
│  Protocol Handler | Sharding Engine | Tx Manager       │
└───────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────┐
│            Storage Abstraction Layer                   │
│   MySQL | PostgreSQL | MongoDB | InfluxDB | Neo4j     │
└───────────────────────────────────────────────────────┘

AI优化器设计

核心能力

  • 查询模式学习: 分析历史SQL模式,预测最优执行计划
  • 索引推荐: 基于查询频率和数据分布推荐最优索引
  • 连接顺序优化: ML模型预测最佳JOIN顺序
  • 分片键推荐: 分析SQL模式智能推荐分片策略
  • 预热与缓存: 预测热点数据并提前缓存

云原生设计

apiVersion: Mycat3.io/v1
kind: Mycat3Cluster
metadata:
  name: production
spec:
  version: 3.0.0
  replicas: 3
  storage:
    type: mysql
    connectionPool:
      maxConnections: 1000
  autoscaling:
    enabled: true
    minReplicas: 2
    maxReplicas: 10
    targetCPUUtilization: 80
  ai:
    enabled: true
    modelPath: /models/

多模数据支持

数据模型后端使用场景
关系型MySQL, PostgreSQLOLTP, 报表
文档型MongoDB, Elasticsearch内容管理, 搜索
时序型InfluxDB, TimescaleDBIoT, 监控指标
图数据Neo4j, Apache Age社交网络, 风控

技术栈

组件技术选型
核心语言Java 17+ / Kotlin
网络框架Netty
响应式框架Vert.x
SQL解析优化Apache Calcite
协调服务ZooKeeper / etcd / Consul
AI/MLTensorFlow, ONNX Runtime
可观测性Prometheus, Jaeger, OpenTelemetry

性能目标

指标目标值
查询延迟 (P99)< 5ms
吞吐量> 100K QPS
HA故障切换< 1秒
最大数据节点10,000
最大集群规模100节点

开发路线图

Phase 1 (3.0.0): 基础架构
  ├── 核心查询路由
  ├── 基础分片策略
  ├── MySQL协议兼容
  └── 单机部署

Phase 2 (3.2.0): 云原生
  ├── K8s Operator
  ├── 自动伸缩
  ├── 多租户
  └── 服务网格集成

Phase 3 (3.4.0+): 智能化
  ├── AI查询优化器
  ├── 自动分片优化
  ├── 预测性伸缩
  └── 异常检测
参与贡献: Mycat3.0 设计阶段欢迎社区参与讨论和贡献。请通过 GitHub Issues 提交建议。