数据库分库分表中间件:Mycat

Mycat

1.Mycat介绍

用户链接代理服务器的端口号一般是:8066端口

1.1Mycat概述

——从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了 MySQL 协议的Server,前端用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和命令行访问,而其后端可以用MySQL 原生(Native)协议与多个 MySQL 服务器通信,也可以用 JDBC 协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为 N 个小表,存储在后端 MySQL 服务器里或者其他数据库里。

1.2Mycat是什么

Mycat 是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服务。
由于前面讲的对数据进行分片处理之后,从原有的一个库,被切分为多个分片数据库,所有的分片数据库集群构
成了整个完整的数据库存储。

在这里插入图片描述

1.3Mycat原理

Mycat 的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的 SQL 语句,首先对 SQL 语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。

1.4Mycat应用场景

  1. 单纯的读写分离,此时配置最为简单,支持读写分离,主从切换;
  2. 分表分库,对于超过 1000 万的表进行分片,最大支持 1000 亿的单表分片;
  3. 多租户应用,每个应用一个库,但应用程序只连接 Mycat,从而不改造程序本身,实现多租户化;
  4. 报表系统,借助于 Mycat 的分表能力,处理大规模报表的统计;
  5. 替代 Hbase,分析大数据;
  6. 作为海量数据实时查询的一种简单有效方案,比如 100 亿条频繁查询的记录需要在 3 秒内查询出来结果,
    除了基于主键的查询,还可能存在范围查询或其他属性查询,此时 Mycat 可能是最简单有效的选择。

2.Mycat部署

2.1上传并解压Mycat

特别说明:mycat使用必须要安装jdk才能使用
命令:tar -zxvf Mycat-server-1.7.0-DEV-20170416134921-linux.tar.gz
在这里插入图片描述

2.2Mycat配置文件说明

2.2.1server.xml文件配置

在这里插入图片描述

配置说明:

1.配置中 name 是应用连接中间件逻辑库的用户名。
2.123456中 password 是应用连接中间件逻辑库的密码。
3.jtdb是应用当前连接的逻辑库中所对应的逻辑表。 schemas 中可以配置一个或多个。
4.true 中 readOnly 是应用连接中间件逻辑库所具有的权限。 true 为只读, false 为读写都有,默认为 false。

2.2.2修改.yml配置文件

在这里插入图片描述

2.2.3修改schemas.xml文件配置

在这里插入图片描述
schemas文件主要的作用就是配置数据库读写的策略.

2.3启动Mycat进行测试

启动命令:./mycat
在这里插入图片描述