【二】MyCAT主要作用、读写分离、负载均衡、垂直切分、水平切分概述

  • Post author:
  • Post category:其他


主要作用:


1作为分布式数据库中间层使用

MyCAT由Java开发,理论上说所有可以使用JDBC连接的关系型数据库和非关系型数据库都能使用MyCAT。


2.对主从数据库的读写分离、读的负载均衡

如果不用MyCAT,在每一个访问这套数据库的


应用


中都要实现读写分离的逻辑。

如果MySQL是一主多从,主卦了,MyCAT会选一个从来读写,但是其他从不会同步新主的数据。

所以MySQL是一主多从要做高可用建议使用MHA之类的主从复制管理工具。


3.对业务数据进行垂直切分、写的负载均衡



把原来保存到同一个DB中的表,按照业务模块拆分到多个DB中


比如,订单/仓配、用户、商品的表都在a数据库中,现在把订单/仓配放到a数据库中,把用户放到b数据库中,把商品放到c数据库中。

MyCAT的


逻辑库


功能,会把3组不同的数据库虚拟成一个数据库,还保持原来的a名字不变。这可以最大限度的减少对已经存在的应用的修改。


4.对业务数据库进行水平切分、写的负载均衡

在垂直切分的基础上,再把a数据库中订单/仓配进行水平切分。F(c)=1放在order01库,F(c)=2放在order02库,F(c)=3库放在order03。

F函数代表切分规则,c代表指定切分的列,c是要进行水平切分的表中的某一列,通常是主键。

这一整套的切分逻辑在引入MyCAT后就由MyCAT来实现了,不用在每一个


应用


中单独实现。


5.控制数据库接连的数量

MyCAT中可以建立公共连接池,供不同应用使用,从而有效控制数据库连接的数量。



版权声明:本文为jy02268879原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。