之前我们已经实现了mycat的主从复制,读写分离,数据分片。https://blog.csdn.net/Delicious_Life/article/details/106169808
本篇来搭建mycat集群。
集群搭建
首先返回到下面的目录
cd /haoke/mycat
我们复制mycat01里面的内容,新建一个mycat02
cp mycat01 mycat02 -R
由于我们是在1台机器上搭建集群,因此需要修改mycat的端口
cd /haoke/mycat/mycat02/conf
vim wrapper.conf
默认是1984我们改成1985
接下来我们要设置服务端口以及管理端口
vim server.xml
新增两行
启动mycat02
我们cd到bin目录下
/haoke/mycat/mycat02/bin
输入jps查看端口,kill掉W开头的那个
输入命令,启动mycat02
./mycat console
然后我们用navicat连接,端口8067,用户名itcast,密码itcast123
我们打开mycat02中的表,可以看到有何mycat01一样的数据
架构图如下所示:
架构图中mycat和mysql这里是一个概念,附HAproxy配置文件haproxy.cfg
MyCat 读写分离
MyCat其他核心介绍参考:
主从复制的搭建参考:
1 介绍
MyCat的读写分离是建立在MySQL主从复制基础之上实现的,所以必须先搭建MySQL的主从复制。
数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySQL来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数量取决于系统的压力,通常是1-3个读节点的配置
2 配置详情
slaveThreshold="100">
balance参数
一般配置1
balance=“0”, 所有读操作都发送到当前可用的writeHost上。
balance=“1”,所有读操作都随机的发送到readHost。
balance=“2”,所有读操作都随机的在writeHost、readhost上分发。
writeType 参数
一般配置0
writeType=“0”, 所有写操作都发送到可用的writeHost上。
writeType=“1”,所有写操作都随机的发送到readHost。
writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。
switchType与slaveThreshold=100
表示不自动切换: -1
默认值,自动切换: 1
基于MySQL主从同步的状态决定是否切换: 2
总结
readHost是从属于writeHost的,即意味着它从那个writeHost获取同步数据,因此,当它所属的writeHost宕机了,则它也不会再参与到读写分离中来,即“不工作了”,这是因为此时,它的数据已经“不可靠”了。基于这个考虑,目前mycat 1.3和1.4版本中,若想支持MySQL一主一从的标准配置,并且在主节点宕机的情况下,从节点还能读取数据,则需要在Mycat里配置为两个writeHost并设置banlance=1。
Mycat心跳检查语句配置为 show slave status ,dataHost 上定义两个新属性: switchType=“2” 与
slaveThreshold=“100”,此时意味着开启MySQL主从复制状态绑定的读写分离与切换机制。Mycat心跳机制通过检测 show slave status 中的 “Seconds_Behind_Master”, “Slave_IO_Running”, “Slave_SQL_Running” 三个字段来确定当前主从同步的状态以及Seconds_Behind_Master主从复制时延。



