Mycat配置文件解析

        Mycat比较重要的配置文件有三个,分别是server.xml、schema.xml和rule.xml。

server.xml

        server.xml是配置Mycat系统参数的,包括sql统计、sql解析长度、事务开关、端口号、是否采用Zookeeper协调切换,以及Mycat用户密码等信息。




	
		0  
		0  
		2 
                1 
                5.6.20 
		40960
		1 
		32 
		
		0
		
		65535
		0
		1
		1
		16
		8066 9066 
		300000 0.0.0.0 
		4096 32 
		
		0
		
		1
		
		1m
		
		1k
		0
		
		384m
		
		true
	
	
	 
		
			
			
	   	
       	   	
           	
	
	
	    123456
	    TESTDB
	    	
	    
		    
			    
user TESTDB true

        如上所示,在个配置文件中,system标签下的即为系统参数,可以在做性能优化的时候修改。user标签是定义Mycat用户,上面的配置中配置了两个用户,分别是root和user,name属性是配置名称,password属性配置该用户的登录密码,schemas数据配置用户有权限的逻辑库,如果要配置多个,用英文逗号分隔。如上,root和user用户都对应的逻辑库是TESTDB,root用户还配置了DML权限,而user用户多配置了readOnly属性为true,则表示user用户对TESTDB逻辑库是只读的,该属性默认是false。

schema.xml

        schema.xml是配置逻辑库的,包括逻辑表、分片规则、分片节点、关联规则等信息。




	
		
		
select user()

        这里是以mysql为例,schema标签即配置逻辑库,name属性定义逻辑库的名字。table标签配置逻辑库中的逻辑表,name属性定义逻辑表名,dataNode属性配置该逻辑表要分布的分片节点,rule属性定义该逻辑表以哪种分片方式进行分片,type属性配置改逻辑表是否属于全局表。childTable标签是配置子表的标签,按照关系型数据库中表关系,如果两个表之间有一对多的关系,即可配置成父子表,name属性同样定义子表名称,joinKey属性表示子表中和父表做关联的字段,parentKey属性表示与父表中关联的字段,如上所示,customer表和orders表是一对多的关系,以主键id和orders表中的customer_id字段进行关联。dataNode标签用来配置分片节点,dataHost属性表示分片节点所在的分片主机,database对应的是MySQL物理库中的库名。dataHost节点配置分片主机的信息,name属性表示分片主机的名称,对应dataNode节点的dataHost属性,heartbeat节点是做心跳检测,writeHost和readHost标签是用来配置读、写数据库节点的。

rule.xml

        rule.xml主要是配置分片节规则的,但是分片规则光靠rule.xml配置是不够的,rule.xml主要是配置分片规则的名称,字段等信息,具体的分片算法是在conf下的那些txt文件中的。




	
		
			id
			func1
		
	
	
		
			user_id
			func1
		
	
	
		
			sharding_id
			hash-int
		
	
	
		
			id
			rang-long
		
	
	
		
			id
			mod-long
		
	
	
		
			id
			murmur
		
	
	
		
			id
			crc32slot
		
	
	
		
			create_time
			partbymonth
		
	
	
		
			calldate
			latestMonth
		
	
	
		
			id
			rang-mod
		
	
	
		
			id
			jump-consistent-hash
		
	
	
		0
		2
		160
		
		
	
	
		2
	
	
		partition-hash-int.txt
	
	
		autopartition-long.txt
	
	
		
		3
	
	
		8
		128
	
	
		24
	
	
		yyyy-MM-dd
		2015-01-01
	
	
        	partition-range-mod.txt
	
	
		3
	

        tableRule标签是配置分片规则,name属性是分片规则的名称,对应schema.xml文件中table标签下的rule属性。rule标签是具体规则,columns标签表示按照哪一列进行分片,例如id列,algrithm标签配置的是分片算法,对应的conf下的txt名称。function标签同样是配置分片规则,name是规则名称,class对应分片算法类。

        以上是Mycat主要的配置文件,详细说明可以参考Mycat官网的指南。

你可能感兴趣的:(数据库)