MyCat2实践(4) - MyCat读写分离

1.创建逻辑库

登录mycat,执行建库命令创建一个逻辑库

CREATE DATABASE mydb1;

2.配置数据源

创建完成后,在mycat/conf/schemas下会生成一个逻辑库的json文件

编辑这个json文件

vi mydb1.schema.json

加入下面这行配置

# 逻辑库的目标为原型数据库
"targetName":"prototype"

添加数据源,执行下面语句添加数据源,也可以在mycat/datasources目录下添加配置数据源文件,这里为了方便,直接用注释的方式添加也可以

/*+ mycat:createDataSource{"name":"rwSepw","url":"jdbc:mysql://192.168.50.128:3306/mydb1?useSSL=false&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true","user":"root","password":"123456"} */

/*+ mycat:createDataSource{"name":"rwSepr","url":"jdbc:mysql://192.168.50.129:3306/mydb1?useSSL=false&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true","user":"root","password":"123456"} */

检查是否配置成功

/*+ mycat:showDataSources{} */

3.配置集群

执行下面语句,将刚刚配置的主从数据源填进去

/*! mycat:createCluster{"name":"prototype","masters":["rwSepw"],"replicas":["rwSepr"]} */

检查是否配置成功

/*+ mycat:showClusters{} */

此时,打开/usr/local/mycat/conf/clusters目录下的prototype.cluster.json文件,也可以看到配置的集群信息

vi /usr/local/mycat/conf/clusters/prototype.cluster.json

其中readBalanceType表示负载规则:

BALANCE_ALL:集群中所有数据源都参与读数据的负载

BALANCE_ALL_READ:集群中所有可读的数据源参与读数据的负载

BALANCE_READ_WRITE:集群中写的数据源也参与读数据的负载,但读的数据源优先

BALANCE_NONE:不负载,从写的数据源中选择

配置完成后,重启mycat

./mycat restart

4.测试

打开mycat的逻辑库mydb1,执行

select * from user;

为了分辨查询是否读写分离,我们往逻辑库中插入下面这行数据,mycat会到主库去执行写命令,当从库复制过去时,因为hostname不一样,实际从库的name字段的值和主库也会不一样

# 在mycat的逻辑库中执行下面语句,往主库写数据,让从库复制过去
insert into user(name) values(@@hostname)

分别查看主库和从库的数据

主库

从库

再查询mycat的逻辑库mydb1

多次查询,会发现查询出来的结果是不一样的,说明它是从不同数据源上进行的查询

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值