Mycat

概述

why

  

  Java应用程序 直接 访问MySQL数据库产生的问题:

    Java应用程序 与 MySQL数据库 耦合;

  

  解决:引入Mycat中间件 

    Java应用程序只需要关注Mycat,由Mycat负责与MySQL数据库通信;

  高访问量、高并发对数据库的压力

    可以增加多台MySQL数据库均衡压力;

  读写请求访问量不一致

    可以将一台专用作写请求,其他用作度请求;

what

  1、数据库 中间件

  

  2、数据库中间件对比

    

      

    

    

  3、Mycat官网

      http://www.mycat.io

Mycat能做什么

读写分离

  

数据分片  

  垂直分库

    

    对于单个数据库,如果库内多个表都达到瓶颈,对该库会有很大的压力;

    可以根据不同的业务,将该库内多个表 拆分到 不同业务的库中;

  水平分表

    对于单表数据量特别大时,可以将单表 拆分 不同的子表;

多数据源整合 

  

原理  

  

  

安装启动

  Linux安装方式:

    

安装

  

启动

  

  

    

  3、验证数据库访问正常

    

  4、启动mycat

    

登录  

  1、登录后台管理窗口

    

  2、登录数据窗口

    

搭建读写分离

  

一主一从

  

MySQL 主从复制

    

    

    

    

     

    

    

    

    

    8、主库新增库、表、数据,看从库是否正常同步

    

Mycat配置

  修改mycat的配置文件schema.xml

    

    

      实际设置为1(双主双从)或3(单主单从)

    

双主双从

  

  

  

MySQL双主双从

  

  

  

  

  

  

  

  

  

  

  

   

  

  

  

  

  

  

Mycat配置

  修改mycat的schema.xml

    

    

    

    

    

    

垂直拆分---分库

  

  

  

如何划分表 

  

  

   

    【同一台机器上的不同库的表可以join查询】

    【不同机器上的不同库的表不能join查询】

  

配置分库 

修改schema.xml文件

  

新增空白库

  

访问mycat进行分库

  

   

水平拆分---分表

  

  

    

  

配置分表 

  

  2、分表字段

  

  3、修改mycat配置文件schema.xml

  

  4、修改mycat配置文件rule.xml

  

  

    (算法对应的结点数量)

  

Mycat的分片join

    如果仅对orders表进行分片,在与orders_details进行join查询时,

      仅DB1上有orders_details,会返回数据;

      DB2由于没有orders_details,报错;

      最终结果报错;

  

  

  

  

  

  

  

常用分片规则

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

全局序列  

  

  

  

  

  

  

  

  

  

  

  

  

 

posted on 2023-07-16 15:18  anpeiyong  阅读(30)  评论(0编辑  收藏  举报

导航