cobar的schema.xml配置详解
时间: 2023-10-19 15:11:29 浏览: 104
cobar的schema.xml文件是用于描述数据源、数据表、分库分表规则以及数据源的管理等信息的配置文件,它是cobar的核心配置文件之一。下面我将针对该配置文件的各个部分进行详细解释。
1. 数据源的配置
cobar支持多种类型的数据源,包括MySQL、Oracle、SQLServer等。在schema.xml中,可以使用以下标签来定义数据源的信息:
```xml
<dataNode name="dn1" dataHost="mysql1" database="db1" />
```
其中,name属性表示数据源的名称,dataHost属性表示数据源所在的物理服务器名称,database属性表示数据源所在的数据库名称。
2. 数据表的配置
在cobar中,数据表被称为逻辑表,可以使用以下标签来定义逻辑表的信息:
```xml
<table name="t_order" dataNode="dn1,dn2" rule="order_rule" />
```
其中,name属性表示逻辑表的名称,dataNode属性表示该逻辑表所使用的数据源,可以指定多个数据源,使用逗号分隔。rule属性表示该逻辑表的分库分表规则。
3. 分库分表规则的配置
cobar中的分库分表规则采用类似于分库分表键的方式进行配置,可以使用以下标签来定义分库分表规则的信息:
```xml
<rule name="order_rule">
<columns>c_id</columns>
<algorithm>crc32</algorithm>
</rule>
```
其中,name属性表示规则的名称,columns标签表示分库分表键,可以指定多个字段,使用逗号分隔。algorithm标签表示分库分表算法,目前支持crc32和hash两种算法。
4. 数据源的管理配置
cobar中可以对数据源进行管理,包括读写分离、权重分配、动态添加/删除数据源等功能。可以使用以下标签来定义数据源的管理信息:
```xml
<dataHost name="mysql1" maxCon="100" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="com.mysql.jdbc.Driver"
switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="host1" url="jdbc:mysql://host1:3306/db1?useUnicode=true" user="user" password="password" />
<readHost host="host2" url="jdbc:mysql://host2:3306/db1?useUnicode=true" user="user" password="password" weight="100" />
<readHost host="host3" url="jdbc:mysql://host3:3306/db1?useUnicode=true" user="user" password="password" weight="50" />
</dataHost>
```
其中,name属性表示数据源的名称,maxCon属性和minCon属性表示该数据源的最大连接数和最小连接数,balance属性表示该数据源的负载均衡方式,writeType属性表示该数据源的写入方式(同步或异步),dbType属性表示该数据源的数据库类型,dbDriver属性表示该数据源的JDBC驱动,switchType属性表示该数据源的状态(开启或关闭),slaveThreshold属性表示该数据源的从库阈值。
5. 其他配置
除了上述配置之外,cobar的schema.xml文件还可以进行其他的配置,比如全局配置、路由规则配置、统计信息配置等。这些配置可以通过以下标签进行定义:
```xml
<config>
<property name="config-file">config.properties</property>
<property name="cobar-name">cobar1</property>
<property name="manager-address">127.0.0.1:8080</property>
</config>
```
其中,config标签表示全局配置,property标签表示具体的配置项,name属性表示配置项名称,可以根据实际需要进行设置。
阅读全文