随手记:MyCAT实现MySQL集群与读写分离

Posted 程序猿入门

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随手记:MyCAT实现MySQL集群与读写分离相关的知识,希望对你有一定的参考价值。

前言

      作为当前炙手可热的mysql中间件,MyCAT实现MySQL主从集群的读写分离自是应有之义,其配置也相当简单。

      在这里,我用三个实例组成MySQL主从集群,来验证MyCAT的读写分离功能,其实,一主一从就可以满足,之所以用三个,是为了验证MyCAT的分片功能。

 

第一步:安装MyCat

选择如下版本:

下载成功后解压到本地目录结构如下

随手记:MyCAT实现MySQL集群与读写分离

第二步:配置

1. 修改conf目录下server.xml文件

更改用户密码,不修改默认也可以.此用户密码即Navicat 连接使用

随手记:MyCAT实现MySQL集群与读写分离

2. 修改conf目录下schema.xml文件

库名与server中保持一致,三张表分别进行分片存储

随手记:MyCAT实现MySQL集群与读写分离

配置读写分离数据库,此用户密码为数据库用户密码

随手记:MyCAT实现MySQL集群与读写分离

这里面,有两个参数需要注意,balanceswitchType

      其中,balance指的负载均衡类型,目前的取值有4种:

balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。

balance="1",全部的readHoststand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1M2->S2,并且M1M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。

balance="2",所有读操作都随机的在writeHostreadhost上分发。

balance="3",所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力

      switchType指的是切换的模式,目前的取值也有4种:

switchType='-1' 表示不自动切换

switchType='1' 默认值,表示自动切换

switchType='2' 基于MySQL主从同步的状态决定是否切换,心跳语句为 show slave status

switchType='3'基于MySQL galary cluster的切换机制(适合集群)(1.4.1),心跳语句为 show status like 'wsrep%'

      因此,该配置文件中的balance="1"意味着作为stand by writeHosthostS1hostS2将参与select语句的负载均衡,这就实现了主从的读写分离,switchType='-1'意味着当主挂掉的时候,不进行自动切换,即hostS1hostS2并不会被提升为主,仍只提供读的功能。这就避免了将数据读进slave的可能性,毕竟,单纯的MySQL主从集群并不允许将数据读进slave中,除非配置的是双master

第三步:启动

1.数据库主从复制请自行查看往期分享内容

随手记:MyCAT实现MySQL集群与读写分离

2. cmd打开黑窗口进入bin目录下

随手记:MyCAT实现MySQL集群与读写分离

2. 执行mycat.bat install

3. mycat.bat start 命令可以启动mycat服务

4. mycat.bat stop 命令可以停止mycat服务

5. 启动后可以通过如下命令查看mycat的运行状态:mycat.bat status

随手记:MyCAT实现MySQL集群与读写分离

第四步:测试读写分离

1. Navicat连接mycat

连接方式与正常连接数据库一致,此用户密码为servsr.xml中所配置的密码,端口号默认为8066

随手记:MyCAT实现MySQL集群与读写分离

2.打开TESTDB ,库里有schema.xml配置的三张表

随手记:MyCAT实现MySQL集群与读写分离

3.此时打开表提示如下,是因为在主从库还没有此表的相应信息


随手记:MyCAT实现MySQL集群与读写分离

4. 提前在主从数据库创建好数据库db1,db2,db3schema.xml配置

随手记:MyCAT实现MySQL集群与读写分离

4. 创建表并插入数据,中间停止下主从数据同步让从库数据与主库不一致

主库数据

随手记:MyCAT实现MySQL集群与读写分离

从库数据

随手记:MyCAT实现MySQL集群与读写分离

4. 测试读写分离打开mycatTESTDB库执行查询语句

随手记:MyCAT实现MySQL集群与读写分离

因为我配置了主库承担部分查询功能多次执行sql会发现如下数据

长按下方二维码关注公众号


以上是关于随手记:MyCAT实现MySQL集群与读写分离的主要内容,如果未能解决你的问题,请参考以下文章

Mysql+Mycat实现数据库主从同步与读写分离

MyCAT实现MySQL的读写分离

mycat实现MySQL读写分离

mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

mycat实现mysql读写分离,热切换,集群

mycat实现mysql读写分离,热切换,集群