美文网首页
Mycat读写分离

Mycat读写分离

作者: 我的喵叫初六 | 来源:发表于2019-05-16 11:57 被阅读0次

引用的原文:https://blog.csdn.net/qq_35992900/article/details/80673889

mycat读写分离简单架构图:

这厚厚的水印老茧。。。

安装

#安装Java环境(mycat基于java)

yum install java-1.8.0-openjdk.x86_64

# 下载mycat

wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz

# 解压

tar -zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz

# 剪切到/usr/local下

mv mycat /usr/local/

# 创建专门运行mycat账号

adduser mycat

# 切换到mycat文件夹路径下

cd /usr/local

# 将文件权限赋给mycat账号

chown mycat:mycat -R mycat

#配置环境变量并添加 export JAVA_HOME=/usr export MYCAT_HOME=/usr/local/mycat(如下图所示)

vim /etc/profile

# 刷新环境变量文件

source /etc/profile

# 切换mycat用户

su mycat#切换目录

cd /usr/local/mycat/bin/

#启动

mycat./mycat start

目录结构

配置修改

结构图:

schema.xml读写分离配置:

server.xml连接配置:

连接

通过工具Navicat Premium测试是否可以连接

成功连接后配置java应用程序连接

就是将原来的IP+端口改为mycat的IP+端口

测试:

我这里是通过Navicat Premium分别连接主库和从库,需要断开主从连接

访问java应用提供的web页面

修改我的账号信息,例如名称

修改操作为写入操作,所以查看主库会发现对应的表中数据发生变化,而从库未变化

因为读取是从从库,所以刷新web页面,账户信息会重新显示回原来的信息,也就是从库的信息。

ps:如果测试写入读取操作都是在主库上执行的,可以检查一下dataHost中的balance="1" 配置是否为1,为0会出现此错误。

原因如下

1. balance=“0”, 所有读操作都发送到当前可用的writeHost上。

2. balance=“1”,所有读操作都随机的发送到readHost。

3. balance=“2”,所有读操作都随机的在writeHost、readhost上分发

以下内容引用原文:https://www.jianshu.com/p/c6e29d724fca

WriteType参数设置:

1. writeType=“0”, 所有写操作都发送到可用的writeHost上。

2. writeType=“1”,所有写操作都随机的发送到readHost。

3. writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。

 “readHost是从属于writeHost的,即意味着它从那个writeHost获取同步数据,因此,当它所属的writeHost宕机了,则它也不会再参与到读写分离中来,即“不工作了”,这是因为此时,它的数据已经“不可靠”了。基于这个考虑,目前mycat 1.3和1.4版本中,若想支持MySQL一主一从的标准配置,并且在主节点宕机的情况下,从节点还能读取数据,则需要在Mycat里配置为两个writeHost并设置banlance=1。”

(2)设置switchType="2" 与slaveThreshold="100"

switchType 目前有三种选择:

-1表示不自动切换

1 默认值,自动切换

2 基于MySQL主从同步的状态决定是否切换

“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主从复制时延。“

本文引用的原文链接:

https://www.jianshu.com/p/c6e29d724fca

https://blog.csdn.net/qq_35992900/article/details/80673889

相关文章

  • Mysql读写分离

    常见读写分离方式 MySQL-Proxy读写分离 Amoeba读写分离 Mycat读写分离 基于程序读写分离 My...

  • Mycat 实现 MySQL 读写分离

    Mycat 实现 MySQL 读写分离 目前MyCat配置Mysql 读写分离的文章虽然很多,但是看起来比较杂乱,...

  • Mycat 实现 MySQL 读写分离

    Mycat 实现 MySQL 读写分离 环境:CentOS 6.8 实验拓扑: mycat: 192.168.0....

  • mycat读写分离 初体验

    公司项目要做数据库读写分离,直接代码撸读写分离工作量太庞大了,还是考虑用mycat中间件来做。 下载 mycat官...

  • mycat 读写分离

    准备,安装两个mysql数据库,并且配置主从复制,我主是3306端口,从是3307端口,ip都为192.168.6...

  • Mycat 读写分离

    mycat网站地址:http://www.mycat.io/ 目前版本选择:Mycat-server-1.6-RE...

  • mycat读写分离

    准备Java环境:yum erase `rpm -qa | grep jdk` (系统可能自带) 2.安装ora...

  • Mycat读写分离

    引用的原文:https://blog.csdn.net/qq_35992900/article/details/8...

  • mycat读写分离

    配置读写分离注意:由于系统已经配置好Java环境,我就没配置,使用mycat需要配置Java环境1.下载mycat...

  • mycat 读写分离

    部署环境 下载 jdk 解压文件 配置环境变量 注意 CLASSPATH 中有个点 . 不要省略 使环境变量生效 ...

网友评论

      本文标题:Mycat读写分离

      本文链接:https://www.haomeiwen.com/subject/sdkofftx.html