真实案例:用MyCat实现数据库读写分离与分库分表

Posted 信息化漫谈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了真实案例:用MyCat实现数据库读写分离与分库分表相关的知识,希望对你有一定的参考价值。

        1.0版,普通企业应用基本都是单实例或单库的模式,采用单机实现数据库的访问。再向上,2.0版,随着业务的规模扩展,企业会采用双机数据库,如热备、读写分离的方式来提高性能或可靠性。最后,3.0版,单机实现所有数据的写会遇到最终的瓶颈,因此分库、分表是最终的数据库的高可用的解决方案。今天我们来讲讲用MyCat中间件实现mysql数据库的分库分表的实现。

        MyCat实际是基于阿里巴巴的CoBar进行开源化的中间件。以下是系统架构。

        应用程序(php、JAVA等)在需要连接MySql数据库时,实际连接的是MyCat中间件,由MyCat的连接资源池再次向真实的物理服务器Mysql1、Mysql2、Mysql3发起连接访问请求。通过MyCat能实现读写分离、分库分表的配置。接下来我们来看一下如何配置MyCat。

        一、下载MyCat中间件。

真实案例:用MyCat实现数据库读写分离与分库分表

        二、解压缩MyCat中间件。

真实案例:用MyCat实现数据库读写分离与分库分表

        三、进入MyCat的配置文件。

真实案例:用MyCat实现数据库读写分离与分库分表

        MyCat的配置文件均位于mycat/conf目录下。其中最重要的是以下三个配置文件。server.xml文件是MyCat自身的配置文件;而schema.xml则对应真实的物理数据库服务器的规则;rule.xml是分库分表的规则配置。

真实案例:用MyCat实现数据库读写分离与分库分表

        四、查看server.xml中的配置。

真实案例:用MyCat实现数据库读写分离与分库分表

            以下配置,代表应用程序可以通过root、password访问TESTDB这个数据库。

        五、查看schema.xml中的配置。

        

真实案例:用MyCat实现数据库读写分离与分库分表

        schema.xml中的数据库名与刚才server.xml中的数据库名相对应。

          schema.xml中的dataNode代表通过三台服务器实现分片。

        schema.xml中的dataHost代表真实的物理服务器的配置。在这里可以配置物理服务器的IP、数据库的帐号、密码。

        六、MyCat只是一个数据库的集群调度工具,对于读写分离中的数据复制必须通过数据库自身实现;而对于分表后的联表查询目前只支持两个表的联表查询;MyCat支持MySQL、SQL Server、Oracle、DB2、PostgreSQL 等主流数据库。


        总体来看,MyCat已经是一个不错的数据库中间件,推荐使用。

以上是关于真实案例:用MyCat实现数据库读写分离与分库分表的主要内容,如果未能解决你的问题,请参考以下文章

Mycat简单实现读写分离与分库分表

MyCat 读写分离 数据库分库分表 中间件 安装部署,及简单使用

Mycat 读写分离 数据库分库分表 中间件 安装部署,及简单使用

MySQL+MyCat分库分表 读写分离配置MySQL+MyCat分库分表 读写分离配置

SpringBoot+MyCat 实现读写分离分库分表主从同步

Mycat 读写分离+分库分表