文章目录
一.基本概念
1.是什么?
Mycat是数据库中间件.
1.数据库中间件
连接Java应用程序和数据库
2.为什么要用?
1.Java与数据库紧耦合
2.高访问量高并发对数据库压力
3.读写请求数据不一致
这些都可以使用MyCat解决
3.干什么的?
1.读写分离
2.数据分片
垂直拆分(分库),水平拆分(分表),垂直+水平拆分(分库分表)
3.多数据源整合
4.原理
Mycat 的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的 SQL 语句,首先对 SQL 语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发 往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。
这种方式把数据库的分布式从代码中解耦出来.
二.安装启动
1.安装
1.解压后即可使用:解压缩文件拷贝到linux下 /usr/local
2.三个配置文件:
- schema.xml: 定义逻辑库,表,分片节点等内容
- rule.xml: 定义分片规则
- server.xml: 定义用户以及系统相关变量,如端口等.
2.启动
1.修改配置文件server.xml
- schemas中的TESTDB是mycat对应的逻辑库
2.修改配置文件schema.xml
删除第6行到第32行的一些测试数据库.schema是逻辑数据库.
- TESTDB数据默认节点就是dn1
-
不需要dn2和dn3删除
-
心跳检测:测试mysql的正常使用
<?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="dn1"> </schema>
<dataNode name="dn1" dataHost="host1" database="testdb" />
<dataHost name="host1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="192.168.140.128:3306" user="root"
password="123123">
<!-- can have multi read hosts -->