Mysql—分库分表中间件(Mycat)

一、Mycat是什么

二、Mycat运行原理

Mycat的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。即:应用程序 <===> Mycat中间件 <===> 物理数据库(Database1、Database2、Database3)

Mycat的架构其实很好理解,Mycat是代理,Mycat后面就是物理数据库。和Web服务器的Nginx类似。对于使用者来说,访问的都是Mycat,不会接触到后端的数据库。

应用程序不再直接访问数据库,而是访问Mycat,由Mycat与数据库交互,数据库数据返回给Mycat,Mycat再返回给应用程序。三个Database才是真正的数据库,又称为三个节点,也称为三个分片。

总结:Mycat作为一个中间件,应用程序直接访问它,不用再去管真实的数据库,而由Mycat来与真实的数据库进行交互,真实的数据库可能有多个,这就是分布式架构,即多节点(多分片)。Mycat作为主数据库中间件,肯定是与代码弱关联的,所以代码是不用修改的,使用Mycat后,连接数据库是不变的,默认端口是8066。连接方式和普通数据库一样,如:jdbc:mysql://192.168.0.2:8066/

 https://blog.csdn.net/yangchuanan/article/details/83688489

https://www.jianshu.com/p/92a565a8eb37

https://www.cnblogs.com/wangzhongqiu/p/7100332.html

https://www.cnblogs.com/kingsonfu/p/10627802.html

https://www.cnblogs.com/keme/p/12290977.html

posted @ 2019-10-14 15:55  刘_love_田  阅读(727)  评论(0编辑  收藏  举报