前言
上一篇文章《Mysql搭建主从复制功能》,提督分享了搭建mysql数据库主从复制的功能,现在,咱们在这个功能上实现Mycat的读写分离操作。
一、读写分离是什么?
示例:读写分离 是基于mysql数据库主从复制实现的一个功能,该功能让主数据库处理事务性增、改、删操作,从数据库处理查询操作。它是Mycat的一个重要功能之一,保证了一个数据库宕机,系统还可以从另一个数据库获取数据。保证了数据的安全和系统的稳定。
二、使用步骤
1.修改Mycat的配置文件(schema.xml)修改完:wq保存
代码如下:
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <!--代表数据库的一个配置 与server.xml中的数据库对应 --> <schema name="TESTDB" checkSQLschema="false" dataNode="db_node" sqlMaxLimit="100"> </schema> <!--分片配置--> <dataNode name="db_node" dataHost="db_host" database="test" /> <!--物理数据库的配置 balance:0 所有的读操作给master 1:给slave 2:随机分配--> <dataHost name="db_host" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1" url="192.168.66.138:3350" user="root" passwor="******"> <readHost host="hostS1" url="192.168.66.138:3360" user="root" passwor="******" /> </writeHost> </dataHost> </mycat:schema>
2.片段代码解释
<schema name="TESTDB" checkSQLschema="false" dataNode="db_node" sqlMaxLimit="100"></schema>
参数:
schema:逻辑库名字
sqlMaxLimit:一次取多少条数据
table:逻辑表
dataNode:数据节点,对应datanode标签
rule:分片规则,对象rule.xml配置文件
primaryKey:分片主键,可缓存
#分片配置 <dataNode name="db_node" dataHost="db_host" database="test" />
参数:
name:分片名字
dataHost:分片主机
database:分片数据库
#配置读写分离 <dataHost name="db_host" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1" url="192.168.66.138:3350" user="root" passwor="******"> <readHost host="hostS1" url="192.168.66.138:3360" user="root" passwor="******" /> </writeHost> </dataHost>
参数:
dataHost:数据主机(节点主机)
dbType:数据库驱动 native:MySQL JDBC: oracle SQLServer
switchType: 是否主动读 1
#Balance参数设置:
1 balance=“0”, 所有读操作都发送到当前可⽤的writeHost上。
2 balance=“1”,所有读操作都随机的发送到readHost。
3 balance=“2”,所有读操作都随机的在writeHost、readhost上分发
#WriteType参数设置:
1 writeType=“0”, 所有写操作都发送到可⽤的writeHost上。
2 writeType=“1”,所有写操作都随机的发送到readHost。
3 writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。
#switchType参数设置:
1 switchType="1", 主从自动切换
2 switchType="2",从机延时超过slaveThreshold值时切换为主读
3.启动mycat
mycat restart
总结
对此,mycat搭建一主一从的读写分离就完成了。
眼睛看,脑子会,一动手就报废,小伙伴赶紧动起手来吧。