在此之前,我们需要安装双主双从的mysql数据库

https://blog.csdn.net/wangyunzhao007/article/details/107330124

还需要安装mycat

一,修该schema.xml配置文件

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/"><schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema><dataNode name="dn1" dataHost="host1" database="zhao" /><dataHost name="host1" maxCon="1000" minCon="10" balance="1"writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100"><heartbeat>select user()</heartbeat><!-- can have multi write hosts --><writeHost host="hostM1" url="192.168.157.130:3306" user="root"password="123456"><!-- can have multi read hosts --><readHost host="hostS1" url="192.168.157.129:3306" user="root" password="123456" /></writeHost><writeHost host="hostM2" url="192.168.157.133:3306" user="root"password="123456"><!-- can have multi read hosts --><readHost host="hostS2" url="192.168.157.132:3306" user="root" password="123456" /></writeHost></dataHost>
</mycat:schema>

然后重启mycat,即可生效。

配置文件属性解释

修改<dataHost>的balance属性,通过此属性配置读写分离的类型
 负载均衡类型,目前的取值有4 种:

  1. balance="0", 不开启读写分离机制, 所有读操作都发送到当前可用的 writeHost 上。
  2. balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1, M2->S2,并且 M1 与 M2 互为主备),正常情况下, M2,S1,S2 都参与 select 语句的负载均衡。
  3. ( balance="2",所有读操作都随机的在 writeHost、 readhost 上分发。
  4. balance="3",所有读请求随机的分发到 readhost 执行, writerHost 不负担读压力

写策略:

  1. writeType="0": 所有写操作发送到配置的第一个writeHost,第一个挂了切到还生存的第二个
  2. writeType="1",所有写操作都随机的发送到配置的 writeHost, 1.5 以后废弃不推荐
  3. writeHost,重新启动后以切换后的为准,切换记录在配置文件中:dnindex.properties 。

数据库主备切换策略

switchType="1":

  • 1 默认值,自动切换。
  • -1 表示不自动切换
  • 2 基于 MySQL 主从同步的状态决定是否切换。

配置文件标签解释

Schema:逻辑库,与MySQL中的Database(数据库)对应,一个逻辑库中定义了所包括的Table。

Table:逻辑表,即物理数据库中存储的某一张表,与传统数据库不同,这里的表格需要声明其所存储的逻辑数据节点DataNode。在此可以指定表的分片规则。

DataNode:MyCAT的逻辑数据节点,是存放table的具体物理节点,也称之为分片节点,通过DataSource来关联到后端某个具体数据库上

DataSource:定义某个物理库的访问地址,用于捆绑到Datanode上

二、验证读写分离

在写主机Master1数据库表mytbl(这个表一定要在同步的库中,这样才能让从机去复制数据)中插入带系统变量数据, 造成主从数据不一致

#登录数据库
mysql -uroot -p123456
#使用zhao库,这个一定时要同步的库
use zhao
#插入带系统变量的值
INSERT INTO mytbl VALUES(3,@@hostname);

然后四个库中插入的数据为

在mycat中链接数据库,通过读写分离的模式,而且选择的负载均衡策略为1,除了第一台写主机之外,都用来读,所以我们使用mycat来操作数据库,能查到zk2,zk4,zk5即可。

然后登陆mycat的数据操作窗口

#130服务器安装了mycat
mysql -umycat -p123456 -h 192.168.157.130 -P8066

切换数据库

use TESTDB

然后执行sql语句

select * from mytbl;

多执行查询几次,我们就能看到除了第一台读主机(我配置的事130,就是zk2读看不到)之外的所有结果了。

【mycat】读写分离相关推荐

  1. MyCat读写分离-笔记(四)

    概述 Mycat能够实现数据库读写分离,不能实现主从同步,数据库的备份还是基于数据库层面的.Mycat只是数据库的中间件: Mycat读写分离配置 在MySQL中间件出现之前,对于MySQL主从集群, ...

  2. mycat读写分离部署步骤

    1.下载mycat: https://raw.githubusercontent.com/MyCATApache/Mycat-download/master/1.5-RELEASE/Mycat-ser ...

  3. 应用 | 同学,该学MyCat实际应用案例与MyCat读写分离了

    Hi!我是小小,一个双鱼座的佛系程序猿,今日的blog将会写关于MyCat最后一点学习内容,读写分离,与MyCat实际应用案例和一个小小的例子. MyCat 读写分离 MyCat的读写分离是建立在My ...

  4. Mycat读写分离笔记Windows

    Mycat读写分离笔记Windows 自己搭了一个运用Mycat中间件搭建了一个读写分离的demo,昨晚还在奋战当中,因为连接mycat的时候老是报错:No Mycat DataBases selec ...

  5. Mycat 读写分离、主从切换、分库分表的操作记录

    Mycat 读写分离.主从切换.分库分表的操作记录 系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等 ...

  6. Mycat读写分离、主从切换、分库分表的操作记录 https://www.cnblogs.com/kevingrace/p/9365840.html

    [此篇文章写得不错] 系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问 ...

  7. mysql主从和mycat读写分离的安装及验证

    目录 一.背景介绍 二.安装mysql数据库(主从机器都需要先这样安装) 三.主从机配置 1.主服务器进行如下操作 2.从服务器进行如下操作 四.代理服务器安装和配置mycat读写分离 五.主从复制. ...

  8. MyCAT读写分离分库分表

    MyCAT读写分离及分库分表 第1章 MyCAT分布式系统解决方案 1.1 分布式系统介绍: 分布式系统特性: 1. 透明性: a) 分布式系统对用户来说是透明的,一个分布式系统在用户面前的表现就像一 ...

  9. web 项目 连接mycat 读写分离失效问题

    eg:mycat 读写分离已配好,在navicat工具上查询操作是可以的,但是在项目中,查数据就走写库 mycat 读写分离不支持走事务,查询方法开启了事务管理,因此造成读写数据都走了读库

  10. 运维之道 | Mysql主从复制+mycat读写分离

    运维之道 | Mysql主从复制 + Mycat读写分离 1.什么是读写分离 读写分离,基本的原理是让主数据库处理事务性增.删.改操作(INSERT.UPDATE.DROP),而从数据库处理SELEC ...

最新文章

  1. 动态规划 4、基础背包问题总结(多重背包与多重背包的转化)
  2. from . import _arpack ImportError: DLL load failed
  3. PAT甲级1136 A Delayed Palindrome :[C++题解]回文串和高精度并输出过程
  4. 【原创】注意析构函数的使用
  5. learnpythonthehardway下载_LearnPythonTheHardWay学习笔记1:学习环境搭建
  6. BMVC2018图像检索论文—使用区域注意力网络改进R-MAC方法
  7. 菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven)
  8. 资源管理器 右键 反应慢 现象解决方案
  9. MapGuide简介
  10. ArcMap 计算面积对应平面坐标系,投影坐标系 2000坐标系 84坐标系
  11. 网易公开课“Programming Paradigms” 笔记
  12. 【C】C语言判断文件后缀名
  13. HTTPs SSL OV、DV和EV证书的区别
  14. GOT-10k: A Large High-Diversity Benchmark forGeneric Object Tracking in the Wild(论文翻译)
  15. 被称为无所不能的Python,到底能干嘛?
  16. win10 内存溢出修复
  17. 魅族Android10内测招募答案,魅族flyme9内测招募答案
  18. STOMP-WebSocket中文文档
  19. 下载工具MLDonkey的优化设置
  20. c++ 三次多项式拟合_从寻找谷神星的过程,谈最小二乘法实现多项式拟合

热门文章

  1. linux shell 指定端口 杀进程 结束进程
  2. Linux下cp命令 -f无效的解决方法
  3. Android中实现双击屏幕跳转
  4. Linux操作系统基础 Intel32位系统架构总览
  5. ISC2015听会小计
  6. css和js实现3d图片,JavaScript_纯JS实现旋转图片3D展示效果,CSS:style type=text/cssgt - phpStudy...
  7. 计算机系统的搭建步骤,电脑搭建Node.js开发环境的操作教程[多图]
  8. java字符数统计_【JAVA300例】51、统计输入的字符串中各种字符的字符数
  9. html 点击一行变色,elementui点击table每一行会变色,当有固定列的时候,
  10. html和css有序列表,HTMLCSS基础学习笔记14—有序列表及列表嵌套