1、MyCat概述
MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的Server,应用可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问。
2、MyCat原理
MyCat拦截了用户放送过来的SQL语句,首先对SQL语句做特定分析,然后将SQL发往后端的真实数据库,并将返回结果做适当的处理,最终再返回给用户。
3、MyCat作用
作为分布式数据库中间层使用
对主从数据库的读写分离、读的负载均衡
控制数据库连接数量
4、MyCat常用分片规则
分片枚举:通过在配置文件中配置可能是枚举ID,自己的配置分片,适用特定业务场景
固定分片hash算法
范围约定
取模
按日期分片
5、MyCat主体架构
通信协议:承担低层的收发数据,线程回调处理工作。
路由解析:负责对传入的SQL语句进行语法解析,对符合要求的SQL语句进行优化,最后进行路由计算。
结果集处理:负责对跨分片的结果进行汇聚、排序、截取等。
数据库连接:负责创建、管理、维护后端的连接池。
监控管理:负责对MyCat中的连接、内存资源进行监控管理。
SQL执行:把SQL分发到相应节点执行。