MyCat读写分离

Posted 爱程客

tags:

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

        数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。从数据库的角度来说,对于大多数应用来说,从集中到分布,最基本的一个需求不是数据存储的瓶颈,而是在于计算的瓶颈,即 SQL 查询的瓶颈。我们知道,正常情况下,Insert SQL 就是几毫秒的时间内写入完成,而系统中的大多数 Select SQL 则要几秒到几分钟才能有结果,很多复杂的 SQL,其消耗服务器 CPU 的能力超强,不亚于死循环的威力。在没有读写分离的系统上,很可能高峰时段的一些复杂SQL 查询就导致数据库服务器 CPU爆表,系统陷入瘫痪,严重情况下可能导致数据库崩溃。因此,从保护数据库的角度来说,我们应该尽量避免没有主从复制机制的单节点数据库。

        对于 mysql 来说,标准的读写分离是主从模式(主从搭建参见上一篇文章),一个写节点 Master 后面跟着多个读节点,读节点的数量取决于系统的压力,如下图所示:

        mycat配置步骤

1、安装mycat:解压mycat安装包到/user/local下;

2、设置mycat环境变量:vi /etc/profile

3、使配置文件生效:source /etc/profile

4、进入mycat的配置文件目录,cd /usr/local/mycat/conf/ 

5、配置数据库节点:vi schema.xml

【MyCat】读写分离

【MyCat】读写分离

6、配置系统变量、用户权限:vi server.xml  

7、启动mycat:cd /usr/local/mycat/bin/

./mycat start

8、连接mycat进行测试,查看日志:cd /usr/local/mycat/logs/ 

tail -100f mycat.log,查看读写是否走预期节点,从节点是否有同步数据。


 注意:事务内部的一切操作都会走写节点,所以读操作不要加事务 。另外mycat为了防止内存爆表,会自动为没有限制条数的查询添加limit 100的限制,因此对于返回结果超过100条的查询,要手动添加limit。


参考资料:《mycat权威指南》

以上是关于MyCat读写分离的主要内容,如果未能解决你的问题,请参考以下文章

应用 | 同学,该学MyCat实际应用案例与MyCat读写分离了

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

Mycat读写分离的简单实现

Mycat读写分离的简单实现

Mycat读写分离的简单实现

mycat 读写分离+分库分表+全局表