跳转至

42. mycat参数介绍

1. 配置文件

vim schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="sh1">
</schema>
    <dataNode name="sh1" dataHost="oldguo1" database="world" />
    <dataHost name="oldguo1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1">
        <heartbeat>select user()</heartbeat>
    <writeHost host="db1" url="192.168.178.161:3307" user="root" password="123">
        <readHost host="db2" url="192.168.178.161:3309" user="root" password="123" />
    </writeHost>
    <writeHost host="db3" url="192.168.178.162:3307" user="root" password="123">
        <readHost host="db4" url="192.168.178.162:3309" user="root" password="123" />
    </writeHost>
    </dataHost>
</mycat:schema>

2. balance属性

    <dataHost name="oldguo1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1">
负载均衡类型,目前的取值有3种:
1.balance="0",不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。
2.balance="1",全部的readHost与standby writeHost参与select语句的负载均衡,简单地说,当双主双从模式,正常情况下,M2,S1,S2都参与select语句的负载均衡
3.balance="2",所有读操作都随机的在writeHost、readHost上分发。

3. writeType属性

    <dataHost name="oldguo1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1">
负载均衡类型,目前的取值有2种:
1.writeType="0",所有写操作发送到配置的第一个writeHost,第一个挂了起到还生存的第二个writeHost上,重新启动后,已切换后的为主,切换记录在配置文件中:dnindex.properties
2.writeType="1",所有写操作都随机的发送到配置的writeHost,但不推荐使用

4. switchType属性

    <dataHost name="oldguo1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1">
-1:不自动切换
1:默认值,自动切换
2:基于MySQL主从同步的状态决定是否切换,心跳语句为show slave status

5. datahost其他配置

    <dataHost name="oldguo1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1">
maxCon:最大并发连接数
minCon:mycat在启动后,会在后端节点上自动开启的连接线程

tempReadHostAvailable="1"
这个一主一从时,可以开启这个参数。
如果双珠双从,<heartbeat>select user()</heartbeat>检测心跳

6. sqlMaxLimit属性

<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="sh1">
sqlMaxLimit:在后面会用到,限制最大查询

7. dbDriver属性

    <dataHost name="oldguo1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1">
dbDriver="native" :mysql的驱动是native

最后更新: 2022-02-20 08:44:07