0%

Mycat配置读写分离

Mycat配置读写分离

配置schema.xml配置文件,schema.xml管理着mycat的逻辑库、表、分片规则、DataNode以及DataSource

  • schema标签用于定义mycat实例中的逻辑库
  • table标签定义mycat中的逻辑表
  • dataNode标签定义mycat中的数据节点
  • dataHost标签定义具体的数据库实例、读写分离配置和心跳检测
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

<!-- 逻辑库 可以配置多个逻辑库 -->
<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1">

</schema>

<!-- 数据节点,真实的数据库 -->
<dataNode name="dn1" dataHost="host1" database="mybatis" />

<!-- 数据主机配置
balance是用来配置读写分离的
0:不开启读写分离,所有的读请求都发送到当前可用的writeHost写主机上
1:全部的readHost与writeHost(备主写)参与select语句的负载均衡,双主双从,且双主互为主备
2:所有的读操作随机在writeHost和readHost上分发
3:所有的读请求随机分发到readHost,writeHost不负担读压力

writeType 多主配置使用
0:所有写操作都发送到第一个writeHost,第一个挂了切换到第二个writeHost
1:所有写操作都随机发送到配置的writeHost,1.5后废弃不推荐使用

switchType 写主机切换方式
1:默认值,自动切换
-1:不自动切换
2:基于Mysql主从同步的状态决定是否切换
-->
<dataHost name="host1" maxCon="1000" minCon="10" balance="3"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<!-- 心跳检测 -->
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<!-- 写主机 -->
<writeHost host="hostM1" url="localhost:3306" user="root"
password="123456">
</writeHost>

<!-- 读主机 -->
<readHost host="hostS1" url="localhost:3307" user="root"
password="123456"></readHost>
</dataHost>
</mycat:schema>

欢迎关注我的其它发布渠道