您的位置:

mycat配置详解

一、mycat配置全局表

在mycat配置的过程中,我们需要创建全局表。全局表是对应于实际表的表结构,用来定义一张表的结构和使用规则,这样做的好处是可以灵活地控制每一张表的权限控制,同时也可以减轻实际表的压力。

在mycat配置的过程中,我们需要在global.xml文件中进行配置。

<?xml version="1.0"?>
  <!DOCTYPE mycat:config SYSTEM "schema/mycat-config.dtd">
  <mycat:config xmlns:mycat="http://io.mycat/2015/01/config">
      <!--配置全局表-->
      <schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1,dn2">
          <table name="t_order" primaryKey="id" dataNode="dn1,dn2">
              <childTable name="t_order_item" joinKey="order_id" primaryKey="id" dataNode="dn1,dn2"/>
          </table>
      </schema>
  </mycat:config>

二、mybatis配置log

mycat支持mybatis,我们可以在mybatis中配置log。在配置log时,我们可以选择控制输出的级别,同时还可以控制输出的方式:在控制台、文件、日志平台等。

我们需要在mybatis配置文件中增加一个log对象即可:

<settings>
      <!--配置mybatis日志-->
      <setting name="logImpl" value="LOG4J"/>
  </settings>

三、mycat配置文件

在mycat配置文件中,我们需要配置数据库地址、用户名、密码等信息。默认的配置文件为mycat.yml。

以下是一个样例配置文件:

system:
  user: root
  password: 123456
  
# 集群名称
cluster:
  name: mycat-cluster
  heartbeat: true
  # 集群节点列表
  nodes:
  - ip: 192.168.1.100
  - ip: 192.168.1.101

# 数据库地址列表
dataHosts:
- name: dn1
  hm1: 192.168.1.100:3306
  hm2: 192.168.1.101:3306
  maxCon: 200 #最大连接数
  minCon: 10 #最小连接数
  balance: 0 #负载平衡
  switchType: 2 #切换模式
  mysql:
      user: root
      password: 123456
      usePool: true  

四、idle配置tomcat

在mycat中同样可以配置tomcat,下面我们来介绍如何在mycat中配置tomcat:

我们需要在server.xml中增加一段元数据:

<Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false">
          <Context path="/cat" docBase="cat.war" reloadable="true"/>
      </Host>
  </Engine>

五、mycat配置详解

在mycat配置文件中,我们可以设置一些全局变量:

  • backSocketPoolSize:后端socket连接池大小
  • confHome:配置文件目录
  • dataDir:数据文件目录
  • idType:ID类型
  • proxyPort:代理端口
  • proxyBufferCapacity:代理缓冲区大小
  • proxyIdleTimeout:代理连接空闲超时时间
  • sequnceHandlerType:序列处理类型
  • userDatagramProtocolServerPort:UDP服务端口

以下是一个样例配置:

#代理端口
proxyPort: 8066

#配置目录
confHome: /usr/local/mycat/conf

#数据目录
dataDir: /usr/local/mycat/data

#后端socket连接池大小
backSocketPoolSize: 50

#ID类型
idType: 1

#代理缓冲区大小
proxyBufferCapacity: 204800

#代理连接空闲超时时间
proxyIdleTimeout: 1800000

#序列处理类型
sequnceHandlerType: 1

#UDP服务端口
userDatagramProtocolServerPort: 8067

六、mycat配置一个节点

我们可以使用以下命令在mycat中创建一个节点:

CREATE NODE db1
  ADDRESS 192.168.1.101
  PORT 3306
  CHECKED false
  SSL_MODE disabled
  WEIGHT 1
  TYPE READ_WRITE_SPLIT
  DB_TYPE mysql
  COMMENTS 'mysql1';

七、mycat配置文件详解

在mycat配置文件中,我们可以配置以下内容:

  • dataHosts:数据节点配置
  • dataHostsCache:数据节点缓存策略配置
  • databaseTypes:数据库类型配置
  • dataNodes:数据节点配置
  • dataHostGroups:数据节点分组配置
  • schemaMappings:Schema配置
  • userMappings:用户权限配置

以下是一个样例配置:


#数据节点配置
dataHosts:
  #MySQL服务器地址配置
  - address: 192.168.1.100
    port: 3306
    user: root
    password: 123456
    name: dn1
    minConn: 10
    maxConn: 100
    balance: 1
    writeType: 0
  - address: 192.168.1.101
    port: 3306
    user: root
    password: 123456
    name: dn2
    minConn: 10
    maxConn: 100
    balance: 1
    writeType: 0

#数据节点分组配置
dataHostGroups:
  #主从分离策略配置
  - name: master_slave
    #主节点地址
    master:
        name: dn1
    #从节点地址
    slave:
        - name: dn2
    #读写分离策略配置
    balance:
        type: 0
        read: dn1,dn2
        write: dn1

八、mycat配置与启动

我们可以使用以下命令来启动mycat:

./bin/mycat start
./bin/mycat stop

九、mycat配置oracle

在mycat配置文件中,我们同样可以配置oracle数据库:

schemaName: oracledb
backendType : oracle
dataHosts :
  - address : 192.168.1.101
    port : 1521
    user : test
    password : test
    name : db-1

十、Mycat配置特别复杂

如果你的Mycat配置非常复杂,你可以使用mycat-sever-xxxx-cluster.jar控制mycat的启动和停止,使用mycat-sever-xxxx-console.jar进行监控、查询等相关操作。

使用mycat-sever-xxxx-cluster.jar启动和停止mycat:

java -cp mycat-sever-xxxx-cluster.jar org.opencloudb.mycat.server.MycatStartup start
java -cp mycat-sever-xxxx-cluster.jar org.opencloudb.mycat.server.MycatShutdown

使用mycat-sever-xxxx-console.jar进行监控、查询等操作:

java -cp mycat-sever-xxxx-console.jar org.opencloudb.mycat.console.ConsoleClient -h 192.168.1.101 -P 9066 -u test -p test