一、概述

mycat是一个数据库中间件。基于阿里开源的Cobar演变而来。
mycat的主要原理是拦截SQL语句,并将不同SQL语句做不同处理。例如将SELECT语句转发到读主机来实现读写分离。

二、下载安装

wget http://dl.mycat.org.cn/1.6.7.6/20210303094759/Mycat-server-1.6.7.6-release-20210303094759-linux.tar.gz
#下载1.6.7.6版本

http://www.mycat.org.cn/
#官方网址

三、安装与依赖

3.1 需要JDK环境
3.2 mycat解压即用

四、目录结构

  • 主程序目录:/mycat/bin
  • 配置文件schema.xml:/mycat/conf/schema.xml

    • 用于配置逻辑库、逻辑表相关信息
  • 配置文件server.xml:/mycat/conf/server.xml

    • 用于配置系统参数、用户信息、访问权限及SQL防火墙和SQL拦截功能等
  • 配置文件rule.xml:/mycat/conf/rule.xml

    • 如果使用了水平切分,就需要使用该文件配置切分规则
  • 日志文件log4j2.xml:/mycat/conf/log4j2.xml

五、读写分离

5.1 mycat可以在已配置好主从(或双主多从)的mysql基础上,通过将读请求转发到读主机、将写请求转发到写主机的方式来实现读写分离。

5.2 有4种转发方式:

  • 0:不做读写分离,所有操作发送到写主机(write host)。
  • 1:所有读操作发送到读主机和备用写主机(stand by writeHost)。
  • 2:所有操作随机转发到读和写主机。
  • 3:所有操作发送到读主机(所有写主机都不接受读操作)。

5.3 读写分离配置
逻辑库、表在schema.xml文件中配置,此配置文件是xml格式,下面解释不同标签的作用。

<?xml version="1.0">
#xml声明,固定格式。
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
#引入了schema.dtd用以验证xml格式是否符合期望的规范。
<mycat:schema xmlns:mycat="http://io.mycat/"></mycat:schema>
#所有的配置子标签都在这个大标签内部
#xmlns 属性可以在文档中定义一个或多个可供选择的命名空间。
<?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="localhost1" database="TESTDB" />

    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
              writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <writeHost host="hostM1" url="mysql-master-01:3306" user="root" password="12345">
            <readHost host="hostS1" url="mysql-slave-01:3306" user="root" password="12345" />
        </writeHost>
        <writeHost host="hostM2" url="mysql-master-02:3306" user="root" password="12345">
            <readHost host="hostS2" url="mysql-slave-02:3306" user="root" password="12345" />
        </writeHost>
    </dataHost>
</mycat:schema>

标签: Database, MyCat

添加新评论