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