前面我们完成了mycat多节点取数据的配置:
http://blog.csdn.net/github_26672553/article/details/78110830
多节点在一定程度上起到了 负载均衡的作用。

现在我们修改一下schema.xml这个配置文件,看看一个节点下多台mysql服务器如何配置?

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">
    <schema name="mydbname" checkSQLschema="false" sqlMaxLimit="100">
        <!-- 注意 只有一个节点了 -->
         <table name="news" primaryKey="id"  type="global" dataNode="dataNode1" />
    </schema> 

     <!-- 节点配置 -->
    <dataNode name="dataNode1" dataHost="dataHost1" database="test" />

    <dataHost name="dataHost1" maxCon="1000" minCon="10" balance="0"
        writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <!-- 一个节点下 多台服务器 -->
        <writeHost host="host1" url="10.211.55.13:3306" user="root" password="admin888"> </writeHost>
        <writeHost host="host2" url="192.168.15.138:3306" user="root" password="root"> </writeHost>
    </dataHost>


</mycat:schema>

注意:修改了配置文件后,记得重启mycat服务器哦:mycat restart

现在我们连接上mycat服务器(怎么链接?前一篇已经介绍),我们写条查询SQL来测试:

SELECT * FROM news;

如果此时其中一台msyql服务宕机了,还是可以取得数据(因为还有另外一台)

试一下读写分离

balance属性:

balance="0",不开启读写分离,所有读操作都加在writeHost上;
balance="1",全部writeHost和readHost都参与select;
balance="2",所有读操作都随机在writeHost、readHost上处理;
balance="3",所有读readHost执行,writeHost不读只写。

修改schema.xml为如下内容:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">
    <schema name="mydbname" checkSQLschema="false" sqlMaxLimit="100">
        <!-- 注意 只有一个节点了 -->
         <table name="news" primaryKey="id"  type="global" dataNode="dataNode1" />
    </schema> 

     <!-- 节点配置 -->
    <dataNode name="dataNode1" dataHost="dataHost1" database="test" />

    <!-- balance="3" 开启读写 -->
    <dataHost name="dataHost1" maxCon="1000" minCon="10" balance="3"
        writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>

        <!-- 10.211.55.13是主(写)
            192.168.88.88是从(读)
         -->
        <writeHost host="hostM1" url="10.211.55.13:3306" user="root" password="admin888"> 
            <readHost host="hosS2" url="192.168.88.88:3306" user="root" password="admin888" /> 
        </writeHost>

    </dataHost>

</mycat:schema>

这个配置就是一个简单的读写分离配置。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐