mycat读写分离

一、实现方式

mycat作为一个数据库中间件,它能够实现读写分离。简单地说,它可以将“写数据”和“读数据”分开,分配到不同地数据库。但是,它并不能够做到对数据库进行数据同步,所以mycat地读写分离是依赖于数据库本身地“复制”功能。例如:mysql地“主从复制”或者“双主复制”等。

 

二、主从复制||双主复制

开启主从复制,或者主主复制

主从复制:http://www.cnblogs.com/lay2017/p/9043985.html

双主复制:http://www.cnblogs.com/lay2017/p/9045557.html

 

三、配置读写分离

本文基于之前的一篇“mycat分库分表”,地址:http://www.cnblogs.com/lay2017/p/9030709.html

在它的基础上,只需要简单更改配置即可

我们找到schema.xml文件,并更改配置:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
    <!-- 配置逻辑库 -->
    <schema name="mycatdb" checkSQLschema="true" sqlMaxLimit="100" dataNode="dataNode1">
    </schema>

    <!-- 配置分片节点 -->
    <dataNode name="dataNode1" dataHost="dataHost1" database="数据库名" />

    <!-- 配置节点主机 -->
    <dataHost name="dataHost1" maxCon="1000" minCon="10" balance="1"  writeType="0" dbType="mysql" dbDriver="native">
        <!-- 心跳 -->
        <heartbeat>select user()</heartbeat>
        <!-- 读写配置 -->
        <writeHost host="host1" url="写库的IP:3306" user="root" password="root">
            <readHost host="hostM1" url="读库的IP:3306" user="root" password="root">   
            </readHost>
        </writeHost>
    </dataHost>

</mycat:schema>

writehost配置写库

readhost配置读库

datahost中balance = "1" 表示 将所有的“读”操作发送到readhost上,减轻writehost的负担,以达到读写分离

 

四,启动测试

使用命令:./mycat start启动mycat

就可以连接并测试数据库了

posted @ 2018-05-16 22:12  __lay  阅读(197)  评论(0编辑  收藏  举报