Mycat原理解析
文章平均质量分 67
Mycat是一个强大的分布式数据库中间件,可以用来做分库分表、读写分离、容灾备份、多租户应用开发等。
爱上香锅的麻辣
高级Java开发工程师,熟悉电商系统整体架构(尤其是订单和商品系统)和服务治理体系
展开
-
7 Mycat原理解析-DDL语句处理
前面,我们已经讲过了Mycat如何判断sql类型,然后针对不同类型的sql就行不同的处理【Mycat原理解析-SQL语句的处理】,下面,我们来看看其中的DDL语句,Mycat是怎么处理的。结合ServerParse.java中的代码,我们来看看Mycat支持的常见的DDL语句的。CREATE:create indexDROP:drop indexTRUNCATE:truncate t原创 2018-01-29 09:23:43 · 1841 阅读 · 0 评论 -
6 Mycat原理解析-EXPLAIN语句处理
前面,我们已经讲过了Mycat如何判断sql类型,然后针对不同类型的sql就行不同的处理【Mycat原理解析-SQL语句的处理】,下面,我们来看看其中的explain语句,Mycat是怎么处理的。 Mycat提供的EXPLAIN语句并不是用来查看执行计划的,而是用来查看路由结果的,如果要查询真正的执行计划,拿到路由结果里面的sql语句,到具体的实例上面查看就行了。例如,下面的sql语句,就被原创 2018-01-26 14:42:21 · 3626 阅读 · 0 评论 -
5 Mycat原理解析-SQL语句的处理
Mycat接收到客户端的sql语句时,会统一使用ServerQueryHandler.query(String sql)方法来处理,ServerQueryHandler主要做了两件事情。确定sql的类型。比如:SELECT、UPDATE、INSERT、SHOW等将不同类型的sql交给不同的处理器进行处理@Overridepublic void query(String sql) {原创 2018-01-25 13:50:59 · 1303 阅读 · 0 评论 -
4.Mycat原理解析-线程模型
Mycat的线程主要包括下面几个部分:主线程,IO线程(包括NIOAcceptor、NIOConnector、NIOReactor)、调度线程(包括scheduler、heartbeatScheduler)、业务线程池(包括timerExecutor、businessExecutor)原创 2018-01-03 18:51:10 · 722 阅读 · 0 评论 -
3.Mycat原理解析-后端连接管理
一、数据源与连接池 前面我们说过,Mycat除了作为服务端外,还作为客户端来连接数据库,所以需要管理与数据库的连接。在管理后端连接中,主要涉及到下面两个类。PhysicalDatasourceBackendConnection 从下面的类图可以看出,同普通的数据源一样,PhysicalDatasource负责建立连接,并且内部维护了一个连接池——conMap。 Mycat原创 2018-01-03 11:45:39 · 2500 阅读 · 0 评论 -
2.Mycat原理解析-网络通信框架
一、3种 IO 类型根据消息通信机制来分,IO分为同步与异步 同步:调用者主动等待调用的结果,发出调用后,在没有得到结果之前该调用就不返回; 异步:发出调用后就直接返回了,但是没有结果。被调用者会在调用真正执行完后,通过状态或者回调函数将结果通知调用者。根据程序在等待调用结果时的状态来分,IO分为阻塞于非阻塞。 阻塞:调用结果返回之前,当前线程会被挂起,调用线程只有在得到结果之后才会返回。原创 2018-01-02 11:45:46 · 1802 阅读 · 0 评论 -
1.Mycat原理解析-Mycat架构分析
MyCat是社区爱好者在阿里Cobar基础上进行二次开发,解决了cobar当时存 在的一些问题,并且加入了许多新的功能在其中,目前MyCAT社区活跃度很高。原创 2018-01-02 08:52:34 · 10617 阅读 · 1 评论