mysql集群实现高可用读写分离之mycat实战_一点课堂(多岸学院)
2019-05-13 15:11
1241 查看
mysql读写分离
-
什么是读写分离
读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。
-
为什么要读写分离呢?
在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需求的。无论是在安全性、高可用性,还是高并发等各个方面都是完全不能满足实际需求的。因此,通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。
因为数据库的“写”(写10000条数据到oracle可能要分钟)操作是比较耗时的。
但是数据库的“读”(从oracle读10000条数据可能只要秒钟)。
所以读写分离,解决的是,数据库的写入,影响了查询的效率。
-
主从复制、读写分离的基本设计
一台主、多台从,主提供写操作,从提供读操作。
-
MYCAT背景介绍
在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如果数据库不小心挂掉了,则同时也意味着程序的不可用,而这对很多应用来说,并不能接受。
引入MySQL中间件能很好的对程序端和数据库进行解耦,这样,程序端只需关注数据库中间件的地址,而无需知晓底层数据库是如何提供服务。
-
什么是MYCAT?
-
一个彻底开源的,面向企业应用开发的大数据库集群
- 支持事务、ACID、可以替代MySQL的加强版数据库
- 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
- 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
- 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
- 一个新颖的数据库中间件产品
-
mycat原理图
-
环境信息
操作系统:centos6.8 主机:192.168.57.201(主)、:192.168.57.202(从) mycat:1.6 下载地址:http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
-
安装mycat
#下载 wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz #解压 tar xzvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz #要有jdk的环境(/etc/profile) JAVA_HOME=/opt/yidian/jdk1.8.0_191 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAME_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH
-
mycat配置
server.xml
<user name="root"> <property name="password">123456</property> <property name="schemas">TESTDB</property> </user> <user name="user"> <property name="password">123456</property> <property name="schemas">TESTDB</property> <property name="readOnly">true</property> </user>
-
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="yidiankt_mycat"> </schema> <dataNode name="yidiankt_mycat" dataHost="localhost1" database="yidiankt" /> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType 1cca8 ="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="192.168.57.201:3306" user="root" password="123456"> <!-- can have multi read hosts --> <readHost host="hostS2" url="192.168.57.202:3306" user="root" password="123456" /> </writeHost> </dataHost> </mycat:schema>
-
启动mycat
./mycat start netstat -ntlp ps -ef | grep mycat # 登录mycat管理端口 mysql -uroot -p123456 -h127.0.0.1 -P9066 # 查看读写配置情况 show @@datasource; # 查看心跳信息 show @@heartbeat; # 登录mycat数据端口 mysql -uroot -p123456 -h127.0.0.1 -P8066
-
测试读写分离
更改日志的输出模式,需重启./mycat restart vi log4j.xml 修改<asyncRoot level="info" includeLocation="true"> 为 <asyncRoot level="debug" includeLocation="true"> #查询观察日志的变化 tail -f wrapper.log
视频教程:www.yidiankt.com
关注公众号-免费获取【JAVA核心知识点】!!
相关文章推荐
- 【备忘】基于MyCat的MySQL高可用读写分离集群实战课程下载
- mysql实现高并发集群之mycat分库分表教程_一点课堂(多岸学院)
- mongodb高可用复制集集群实战详解_一点课堂(多岸学院)
- 高可用架构篇--MyCat在MySQL主从复制基础上实现读写分离
- mycat实现mysql读写分离,热切换,集群
- mysql与mycat搭建实现集群与读写分离
- 分布式架构高可用架构篇_08_MyCat在MySQL主从复制基础上实现读写分离
- mysql的集群及读写分离实现方案(利用mycat中间件)
- 分布式架构高可用架构篇_08_MyCat在MySQL主从复制基础上实现读写分离
- 分布式架构高可用架构篇_08_MyCat在MySQL主从复制基础上实现读写分离
- 高可用架构篇--MyCat在MySQL主从复制基础上实现读写分离
- mysql 的读写分离 以及mycat 实现集群管理
- mysql大型分布式集群 mysql分布式部署 Mycat分库分表 mycat读写分离 MySQL集群与优化 高可用数据架构 mysql分布式事务教程
- keepalived+mycat+mysql实现高可用主从架构(集群版)
- MongoDB4.0分片集群搭建实现高并发大数据处理详解_一点课堂(多岸学院)
- MyCat 在 MySQL 主从复制基础上实现读写分离
- Corosync+Pacemaker+DRBD+MySQL 实现高可用(HA)的MySQL集群
- 基于Mycat实现的mysql的读写分离
- Memcached主从复制+Keepalived实现Memcached高可用架构集群实施--缓存Mysql查询结果
- 使用mysql-proxy 快速实现mysql 集群 读写分离