一、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