Mycat架构
图1 Mycat架构图


Mycat在逻辑上由几个模块组成:
- MySQL Protocol通信层
Application通过MySQL协议连接Mycat。Mycat提供NIO和AIO的方式作为前端Server的实现方式,因为Linux不支持AIO,因此目前推荐使用的是NIO的方式。
- 应用连接池
管理Application与Mycat的连接,Mycat则采用了基于MySQL实例的连接池模式,每个Database都可以用现有的1000个连接中的空闲连接。
- SQL解析组件+SQL优化组件+SQL路由组件
Application的SQL通过这三个组件依次作SQL的解析、优化和路由,最终确定SQL应该路由到哪些后端DB去执行,而后交给SQL执行组件。
- SQL执行组件
根据路由结果,对全部的target发送SQL语句,这个过程需要从后端的数据库连接池中获取连接,而且经过特定的driver和后端DB进行通信。
- 数据库连接池
- 后端MySQL Protocol通信层+后端JDBC Driver
实现特定DB的通信协议,对于MySQL来讲,提供NIO和AIO的方式,因为Linux不支持AIO,因此目前推荐使用的是NIO的方式,主要用NIO。
- ORDER BY排序+GROUP BY聚合+结果集合并
父主题: 简介