用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/conf目录下。其中最重要的是以下三个配置文件。server.xml文件是MyCat自身的配置文件;而schema.xml则对应真实的物理数据库服务器的规则;rule.xml是分库分表的规则配置。

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

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

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

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

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

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

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

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

希望以上文章能帮到您。

更多内容实时更新,请访问公众号。    

点击这里,获取最高¥1888阿里云产品通用代金券

猜你喜欢

转载自blog.csdn.net/qq_29718979/article/details/86774469