概述

  Mycat能够实现数据库读写分离,不能实现主从同步,数据库的备份还是基于数据库层面的。Mycat只是数据库的中间件;

Mycat读写分离配置

在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如果数据库不小心挂掉了,则同时也意味着程序的不可用,而这对很多应用来说,并不能接受。

引入MySQL中间件能很好的对程序端和数据库进行解耦,这样,程序端只需关注数据库中间件的地址,而无需知晓底层数据库是如何提供服务。

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

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

集群组成如下:

角色             主机名                      主机IP

master         mysql-server1          192.168.244.145

slave            mysql-server2          192.168.244.146

slave            mysql-server3          192.168.244.144

在这里,还是使用Travelrecord表进行测试。

首先编辑MyCAT的配置文件schema.xml,关于dataHost的配置信息如下:

<dataHost name="localhost1" 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="localhost:3306" user="root"password="123456"></writeHost><writeHost host="hostS1" url="192.168.244.146:3306" user="root"password="123456" /><writeHost host="hostS2" url="192.168.244.144:3306" user="root"                      password="123456" />
</dataHost>

这里面,有两个参数需要注意,balance和 switchType。

其中,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",所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力

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

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

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

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

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

转载于:https://www.cnblogs.com/xibei666/p/10411132.html

MyCat读写分离-笔记(四)相关推荐

  1. Mycat读写分离笔记Windows

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

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

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

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

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

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

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

  5. MyCAT读写分离分库分表

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

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

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

  7. MySQL数据库mycat读写分离

    mycat读写分离 Mycat的读写分离是建立在Mysq的主从复制的基础上的 修改配置文件 schema.xml <?xml version="1.0"?> <! ...

  8. MySQL MyCAT 读写分离实战

    1.MySQL读写分离概念: MYSQL读写分离的原理其实就是让Master数据库处理事务性增.删除.修改.更新操作(CREATE. INSERT.UPDATE.DELETE),而让Slave数据库处 ...

  9. MySQL主从配置与Mycat读写分离

    MySQL主从配置与Mycat读写分离 一.主数据库配置 编辑配置文件 添加如下内容 server-id=1 binlog-do-db=master_db1 #备份的数据库 log-bin=mysql ...

最新文章

  1. 金融数据分析(四)-------矩,偏度,峰度
  2. 如何训练2457亿参数量的中文巨量模型“源1.0”
  3. jax-ws服务使用
  4. Linux单网卡多个IP(或者多个网卡多个IP)设置
  5. EGOImageView 解析
  6. Python遍历列表里面序号和值的方法
  7. 剑指offer-3(替换空格)
  8. CentOS7完成mysql的安装和远程访问
  9. docker 封装sql_docker封装mysql镜像
  10. 求一个数是几位数,并求每位数相加的和
  11. C++ 无限for循环的bug
  12. 【论文阅读】Whisper: Robust Speech Recognition via Large-Scale Weak Supervision
  13. 【CSS】background各属性一览汇总
  14. 进军NFT,第三代公链GGC与NFT3.0技术平台BOBO、OKEx NFT深度联合
  15. git clone出现fatal: unable to checkout working tree报错的解决办法
  16. u深度linux下载,u深度u盘启动盘制作工具下载
  17. Redux的核心知识
  18. Python综合小应用 —— 胖子老板香烟管理系统
  19. Canonical_transcript-经典转录本
  20. ## IDEA创建maven项目没有src目录问题解决

热门文章

  1. linux启动spark命令,在linux上安装spark
  2. python爬虫获取的网页数据为什么要加[0-[Python爬虫] 等待网页加载后再获取内容...
  3. 青少年软件编程等级考试 python-中国电子学会《全国青少年软件编程等级考试标准》升级啦!...
  4. python基础教程攻略-python基础教程(一)
  5. python处理excel-python处理excel总结
  6. java和python哪个好就业2020-python和java自学哪个好?
  7. python画图-python绘图篇
  8. python序列类型-python序列类型有哪些
  9. python程序员薪资-python工资高还是java?
  10. python基础语法总结-Python基础语法总结之逻辑运算