MyCat 是基於 NIO 的高效能分布式資料庫中間件,支援分片、讀寫分離、多租戶等特性。本系列針對 MyCat 1.4 穩定版源碼,從啟動流程、前後端認證、路由解析、SQL 執行引擎等維度進行深度剖析,助力二次開發與問題排查。
MyCat Server
├── Network Layer (NIO Reactor)
│ ├── Acceptor (前端連接接受)
│ ├── Processor (前端命令處理)
│ └── Backend Connection Pool (後端連接池)
├── Session Management
│ ├── Frontend Session (客戶端會話)
│ └── Backend Session (MySQL 連接會話)
├── SQL Parsing & Routing
│ ├── Parser (Druid SQL Parser)
│ ├── Router (分片路由算法)
│ └── Hint/Schema 路由
├── Execution Engine
│ ├── Simple/Complex Execution Plan
│ ├── Multi-Node Merge (Order By/Group By/Limit)
│ └── Transaction Manager (XA/本地事務)
└── Management & Monitor
├── Config Loader (schema.xml/rule.xml/server.xml)
├── Stats Collector (QPS/Slow SQL/Connection)
└── Admin Interface (9066 管理端口)
| 領域 | 技術選型 |
|---|---|
| 網絡框架 | NIO (自研 Reactor 模式) |
| SQL 解析 | Druid (阿里巴巴開源 Parser) |
| 配置管理 | XML + Zookeeper (可選動態配置) |
| 連接池 | 自研池化 (支援預處理語句緩存) |
| 序列化 | MySQL Binary Protocol |