概念:数据库中间件 mycat也可以理解为是数据库代理。 mycat的三大功能:分表、读写分离、主从切换
sharing-jdbc也是很流行的中间件
中间件,左边连接一个,右边连接一个,左边连接应用,右边连接数据库,好处什么?便于各个部件之间的沟通
例子:Tomcat 也是一个中间件,连接客户端和服务端
推理:mycat中间件就是连接java应用和数据库的桥梁
为什么要用mycat?
1.java应用和mysql数据库紧耦合
2.高访问量,高并发对数据库的压力
3.读写请求数据不一致
数据库失去连接怎么办?
预备一个上线的备机,主备切换(但是随之而来的问题,你切换备机,java应用连接数据库的配置需要改变,这里紧耦合)
高访问量,高并发怎么办?
多弄几个数据库一块抗,那么久需要配置多个数据源,
mycat的作用:你java应用不用再管数据库的配置了,交给mycat,java应用只需要访问mycat即可,mycat后面有几个数据库,都不需要你java应用管了,思想和微服务很像
java应用只需要把sql语句传给mycat即可,不管你是select还是update ,mycat会发送给对应的数据库,java程序跟数据库做到了解耦合,读写分离
写数据库的表更新,读数据库的数据也跟着更新看,主从复制
为了抵御风险,备出一份读写数据库,双主双从
先来搭建一个单写单读的数据库,之后再来搭建双主双从的读写分离
1.读写分离(主从复制)
2.数据分片(垂直+水平) 分库+分表 为什么做这个事情?
数据库分布式,一个表的数据太大,查询的速度就会很慢了(单张表的瓶颈),表数据多了,库的压力也大
3.多数据源整合
不同数据库整合
mycat的原理:拦截,它拦截用户发过来的sql语句,首先对sql语句做分析,如分片分析,路由分析,读写分离分析,缓存分析,然后把sql发往后端真实的数据库
mycat的安装
1.centos rpm安装 需要有.rpm安装包
2.yum方式 需要联网
3.解压后需要编译安装
4.解压后直接使用
rz选择安装包,
解压报tar -zxvf,之后把包拷贝到/usr/local中去(opt一般放压缩包)
远程查看包命令:ll /usr/local
拷贝命令 cp -r mycat /usr/local
mycat 的bin目录放的是可执行文件
config配置文件,其中三个比较重要
启动之前我们需要修改一些配置
3.启动mycat
来源:https://www.cnblogs.com/liudao666/p/12370463.html