(保姆级)Mycat搭建读写分离

258 阅读3分钟

目录

一、前言🐇

二、读写分离是什么?🐇

三、使用步骤🐇

1.修改配置文件

2.片段代码解释

3.启动mycat

三、总结🐇


一、前言🐇

上一篇文章《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搭建一主一从的读写分离就完成了。

眼睛看,脑子会,一动手就报废,小伙伴赶紧动起手来吧。