目录
MyCat配置文件详解
配置文件详解
mycat主要有3个配置文件,rule.xml,schema.xml和server.xml,这主要对这3个文件作讲解
1、rule.xml
该文件主要定义了分片的规则,这个文件里面主要有tableRule和function这两个标签。在具体使用过程中可以按照需求添加tableRule和function
1.1、tableRule标签
<tableRule name="auto-sharding-long">
<rule>
<columns>id</columns>
<algorithm>rang-long</algorithm>
</rule>
</tableRule>
说明:
1)name:用户标识不同的分表规则
2)columns:指定按哪一列进行拆分
3)algorithm:该属性值为下面function标签中name的属性值,定义了连接表规则的具体的路由算法,多个表规则可以连接到同一个路由算法上;
1.2、function标签
<function name="rang-long" class="org.opencloudb.route.function.AutoPartitionByLong">
<property name="mapFile">autopartition-long.txt</property>
</function>
说明:
1)name:标识算法的名字;
2)class:指定路由算法具体的类名字;
3)property:具体算法用到的一些属性;
2、schema.xml
该文件是MyCat中重要的配置文件之一,管理着MyCat的逻辑库、表、分片规则、DataNode以及DataSource;
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">
<schema name="e3mall" checkSQLschema="false" sqlMaxLimit="100">
<table name="tb_item" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
</schema>
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost1" database="db2" />
<dataNode name="dn3" dataHost="localhost1" database="db3" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.20.216:3306" user="root" password="root">
</writeHost>
</dataHost>
</mycat:schema>
说明:
1)schema标签:定义mycat实例中的逻辑库;
2)table标签:定义mycat实例中的逻辑表;
3)dataNode标签:定义mycat中的数据节点,也是通常说的数据分片;
4)dataHost标签:作为最底层标签存在,定义了具体的真正存放数据的数据库实例,读写分离配置和心跳语句,我这只用来一台主键,所以只配了一个dataHost,如果你配了N个主机,就要配N个dataHost节点
3、server.xml
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
<system>
<property name="defaultSqlParser">druidparser</property>
</system>
<user name="user">
<property name="password">user</property>
<property name="schemas">e3mall</property>
<property name="readOnly">false</property>
</user>
</mycat:server>
说明:
1)system标签:内嵌的所有property标签都与系统配置有关
1.1)defaultSqlParser:指定默认的解析器(如解析sql),目前的可用的取值有:druidparser和 fdbparser。使用的时候可以选择其中的一种,目前一般都使用druidparser;
2)user标签 :name,逻辑用户名,即登录mycat的用户名;
2.2)password:逻辑密码,即登录mycat的用户名对应的密码;
2.3)schemas:逻辑数据库,可配置多个,用英文逗号隔开,对应于schema.xml文件中配置的逻辑数据库,两者对应;
2.4)readOnly:该数据库是否为只读,如果true就是只读;