mycat2 读写分离
- [mycat2 读写分离](#mycat2 读写分离)
-
- 1.创建两个主从复制的数据库
- [2.mycat2 读写分离](#2.mycat2 读写分离)
- 3.mycat2读写分离测试
mycat2 读写分离
1.创建两个主从复制的数据库
参考:mysql主从复制
2.mycat2 读写分离
连接到mycat数据库
1.在mycat中创建数据库mydb1
sql
CREATE DATABASE mydb1
创建数据库后会在/conf/schemas目录下生成mydb1.schema.json文件
2.修改mydb1.schema.json文件
在文件中添加"targetName":"prototype"。targetName设置的prototype是读写分离集群的名字,后面会用到。
重启mycat
sql
./mycat restart
3.在mycat中配置两个主从复制的数据库mydb1数据源(这里使用sql注解的方式)
sql
#设置写数据库数据源
/*+ mycat:createDataSource{ "name":"m1w","url":"jdbc:mysql://192.168.10.128:3306/mydb1? useUnicode=true&serverTimezone=UTC&characterEncoding=UTF-8", "user":"root","password":"123456", } */;
#设置读数据库数据源
/*+ mycat:createDataSource{ "name":"m1r","url":"jdbc:mysql://192.168.10.129:3306/mydb1? useUnicode=true&serverTimezone=UTC&characterEncoding=UTF-8", "user":"root","password":"123456", } */;
#查看数据源
/*+ mycat:showDataSources{} */
在/conf/datasources/目录下会创建两个数据源文件
4.创建集群
集群name使用mydb1.schema.json中targetName对应的值prototype
sql
/*! mycat:createCluster{ "name":"prototype","masters":[ "m1w" ],"replicas":["m1r"]} */;
#查看集群信息
/*+ mycat:showClusters{} */;
创建集群后再/conf/clusters/会生成集群文件
注释:
readBalanceType:查询负载均衡策略
BALANCE_ALL(默认值):获取集群中所有数据源
BALANCE_ALL_READ:获取集群中允许读的数据源
BALANCE_READ_WRITE:获取集群中允许读写的数据源,但允许读的数据源优先
BALANCE_NONE:获取集群中允许写数据源,即主节点中选择
switchType:控制主从切换
NOT_SWITCH:不进行主从切换
SWITCH:进行主从切换
重启mycat
sql
./mycat restart
3.mycat2读写分离测试
连接mycat在mydb1数据库中建表保存数据,主从复制的数据库也会同步mydb1数据库中的数据