利用mycat实现mysql数据库读写分离
1、这里是在mysql主从复制实现的基础上,利用mycat做读写分离,架构图如下:
2、Demo
2.1 在mysql master上创建数据库创建db1
2.2 在数据库db1创建表student
同时,因为配置好了mysql主从复制,在mysql slave上也有一样数据库和表
2.3 编辑 mycat的配置文件server.xml
<!--表示mycat的登录用户名--> <user name="test"> <!--表示mycat的登录密码--><property name="password">test</property> <!--表示mycat的逻辑数据库名称,可以自定义--><property name="schemas">TESTDB</property></user><user name="user"><property name="password">user</property><property name="schemas">TESTDB</property><property name="readOnly">true</property></user>
2.4编辑mycat的配置文件schema.xml
<!--TESTDB表示mycat的逻辑数据库名称 当schema节点没有子节点table的时候,一定要有dataNode属性存在(指向mysql真实数据库),--><schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema><!--指定master的数据库db1--><dataNode name="dn1" dataHost="192.168.0.4" database="db1" /><!--指定mastet的ip --><dataHost name="192.168.0.4" maxCon="1000" minCon="10" balance="3"writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <!--表示mysql的心跳状态--><heartbeat>select user()</heartbeat><!-- master负责写 --><writeHost host="hostM1" url="192.168.0.4:3306" user="root"password="admin"><!--slave负责读--><readHost host="hostS2" url="192.168.0.5:3306" user="root" password="admin" /></writeHost> </dataHost>
到这里,利用mycat做读写分离就已经配置完了
注意 dataHost节点的下面三个属性
balance, switchType, writeType
balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。
balance="1",全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。
balance="2",所有读操作都随机的在writeHost、readhost上分发。
balance="3",所有读请求随机的分发到writeHost下的readhost执行,writeHost不负担读压力
writeType表示写模式
writeType="0",所有的操作发送到配置的第一个writehost
writeType="1",随机发送到配置的所有writehost
writeType="2",不执行写操作
switchType指的是切换的模式,目前的取值也有4种:
switchType=‘-1‘ 表示不自动切换
switchType=‘1‘ 默认值,表示自动切换
switchType=‘2‘ 基于MySQL主从同步的状态决定是否切换,心跳语句为show slave status
switchType=‘3‘基于MySQL galary cluster的切换机制(适合集群)(1.4.1),心跳语句为show status like ‘wsrep%‘。
转载于:https://www.cnblogs.com/520playboy/p/6159751.html
利用mycat实现mysql数据库读写分离相关推荐
- Mycat原理详解,Mycat 实现 MySQL 的读写分离(Mysql主从复制)
文章目录 1 Mycat 介绍 2 Mycat 安装 2.1下载安装JDK 2.2下载安装mycat 2.3启动和连接 3 Mycat 主要配置文件说明 4 利用 Mycat 实现 MySQL 的读写 ...
- mysql数据库字段变形_详解如何利用amoeba(变形虫)实现mysql数据库读写分离
摘要:这篇MySQL栏目下的"详解如何利用amoeba(变形虫)实现mysql数据库读写分离",介绍的技术点是"MySQL数据库.数据库读写分离.amoeba.MySQL ...
- mybatis获取mysql源数据类型_spring集成mybatis实现mysql数据库读写分离
前言 在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈.幸运的是目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库的数据更新同步到另一台服务器上. ...
- mycat定时向mysql存储数据_【实战演练】Linux操作系统20-MyCat实现Mysql数据库读写分离与自动切换...
#本文欢迎转载,转载请注明出处和作者. 理论部分,详见:繁星亮与鲍包包:[理论研究]业务系统高可用及负载均衡zhuanlan.zhihu.com 本篇主要实现"8.Mysql读写分离&qu ...
- Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...
作者 | Pythonicc 责编 | 王晓曼 出品 | CSDN博客 简介 1.什么是数据库读写分离 读写分离,基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELET ...
- ceph集群和数据库到底是储存数据_Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...
作者 | Pythonicc责编 | 王晓曼出品 | CSDN博客简介1.什么是数据库读写分离读写分离,基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELETE),而从 ...
- Linux安装Mycat1.6.7.6实现Mysql数据库读写分离
1.Mycat简介 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一个 ...
- yii2 mysql in_yii2 mysql数据库读写分离配置
复制和读写分离(Replication and Read-Write Splitting) 许多数据库支持数据库复制来获得更好的数据库可用性, 以及更快的服务器响应时间.通过数据库复制功能, 数据从所 ...
- amoeba mysql exists_Amoeba实现MySQL数据库读写分离
一 环境以及软件版本: 系统:CentOS Linux release 7.2.1511 (Core) MySQL:Server version: 5.6.33 Amoeba:amoeba-mysql ...
最新文章
- CVPR2020 | PV-RCNN: 3D目标检测
- java.net.uri,java.net.uri
- 20170819 - 今日技能封装 - A
- 对话王晶:音频人才亟待培养,高水平研究人员尤其欠缺
- 二,表格table的使用细节
- jquery easyUi的学习笔记{一头扎进EasyUI}
- mysql 5.1.69_CentOS 安装MySQL 5.1.69
- 大学计算机应用技术基础实践教程答案,【最新资料】大学计算机基础实践教程习题答案.doc...
- CSS 实现文字两端对齐
- Android开发中如何调用摄像头的功能
- Android studio 4.0 Layout Inspector查看当前Activity
- C语言题目练习100例——题目+题目分析+源代码(91—100)
- C语言打印输出图形(初版)
- (收藏)盘点阿里巴巴 15 款开发者工具
- 部署高校房屋管理系统可以实现哪些目标?
- 深入浅出TVS瞬态抑态二极管
- 2017年/2月/9日/美签B1/B2流程(供参考)
- 国际标准SHARE78七级灾难备份方案
- ChinaSoft 论坛巡礼 | 群智化软件测试技术和方法
- ViewPager套嵌RecyclerView出现滑动条目时滑不动原因