建行app怎么解除5000限额,20条优化措施,烟台门户网站建设,高端手机网站设计文章目录 1.Mycat配置文件相关概念2.Schema配置文件3.Rule配置文件4.Server配置文件 1.Mycat配置文件相关概念
在Mycat中核心的配置文件有schema.xml和rule.xml以及server.xml三个#xff0c;其中schema.xml是用来配置数据库、表、读写分离、分片节点、分片规则等信息#x… 文章目录 1.Mycat配置文件相关概念2.Schema配置文件3.Rule配置文件4.Server配置文件 1.Mycat配置文件相关概念
在Mycat中核心的配置文件有schema.xml和rule.xml以及server.xml三个其中schema.xml是用来配置数据库、表、读写分离、分片节点、分片规则等信息rule.xml主要是用来定义拆分表的规则server.xml包含了mycat的系统配置信息。
Mycat的配置文件都是xml形式的。
2.Schema配置文件
在schema.xml的配置文件中主要包含三组标签
1schema标签
schema namedb_1 checkSQLschemafalse sqlMaxLimit100 dataNodesh1/schemaschema标签主要用于定义逻辑库的在一个Mycat实例中可以配置多个逻辑库一个逻辑库对应MySQL实例中的一个真实数据库并且通过Mycat连接后执行show databases看到的也都是schema中定义的逻辑库列表。
要通过mycat对哪一个数据库处理就在这里定义该数据库。
schema标签中的重要属性
name定义逻辑库的库名一般和数据库名称保持一致。checkSQLschema如果值为flase当执行的SQL中包含了数据库的名称执行时会自动去掉数据库名称必须要进入到该数据库再执行相应的SQL一般该值都是true避免导致SQL无法执行。sqlMaxLimit如果在查询SQL时没有指定分页值默认引用schema标签中配置的分页大小避免全表查询。dataNode定义逻辑库所属的dataNode该属性需要与dataNode标签中的name对应声明逻辑库属于哪一个MySQL节点多个dataNode逗号分隔。
2schema标签中的table标签
table nameTB_ORDER dataNodedn1,dn2,dn3 ruleauto-sharding-long /table标签用于定义Mycat逻辑库schema下的逻辑表需要进行特殊处理如拆分的表都在这里定义。
table标签中的重要属性
name定义逻辑表的表名该表名在逻辑库schema下唯一。dataNode定义逻辑表所属的dataNode该属性需要与dataNode标签中的name对应声明逻辑表属于哪一个MySQL节点多个dataNode逗号分隔。rule分片规则的名称。primaryKey逻辑表对应真实表的主键。type逻辑表的类型目前逻辑表只有全局表和普通表如果未配置就是普通表全局表配置为 global。
3dataNode标签
dataNode namesh1 dataHostmysql-1 database db_1 /dateNode标签是定义数据节点的schema标签需要与dataNode标签关联声明逻辑库属于哪个数据库实例上的真实数据库。
dateNode标签中的重要属性
name定义数据节点的名称该名称会被schema标签调用。dataHost关联数据库实例主机的名称引用dataHost标签中的name字段的值。database定义后端数据库实例中的真实所在的数据库名称。
3dataHost标签
在dataHost标签中定义数据库实例信息读写分离的配置也是在该标签中配置的。 首先为dataHost标签声明一个名称被dataNode标签调用然后在dataHost标签中定义writeHost标签声明写操作路由的数据库实例信息然后定义readHost标签定义读操作路由的数据库实例信息。
dataHost标签中的重要属性
name定义dataHost标签的名称要被dataNode标签所关联。maxCon/minCon最大连接数生产环境建议3000以上/最小连接数。balance负载均衡类型。 0表示不开启读写分离机制所有的读操作都发送到当前可用的writeHost上。1表示全部readHost和第一个writeHost参与到select语句的负载均衡中简单的说当双主双从的模式下(M1-S1M2-S2并且M1与 M2互为主备)正常情况下M2、S1、S2都参与select语句的负载均衡充当备用的M2不会参与负载均衡。2表示所有的读操作随机在writeHost、readHost上进行分发MHA一主两从的模式下使用balance2。 writeType写操作的分发方式. 0表示写操作只转发到第一个writeHost标签的数据库实例当第一个数据库实例挂掉之后再换到第二个writeHost标签的数据库实例。1表示随机分发到配置的writeHost标签的数据库实例。 switchType主从是否切换 1表示自动切换当主库挂掉之后自动选一个从库作为主库。2表示基于主从同步的状态再决定是否切换。 dbDriver数据库驱动支持 native、jdbc
在writeHost标签中也有很多重要的参数其中readHost标签也是属于writeHost标签内的。
host定义一个名称。url定义数据库的地址。user连接数据库的账号。password连接数据库的密码。 Schema配置文件的完整关联关系schema关联dataNodeDataNode关联dataHost。 3.Rule配置文件
在Rule配置文件中主要定义的是分片规则。
在Rule配置文件中主要有两组重要的标签
tableRule/tableRule在这个标签下定义分片的规则包括对依据那个字段进行分片实现这个分片规则要调用哪一个函数来等。function/function在这个标签下主要定义实现分片规则要用的算法以及分片规则属性。 1tableRule/tableRule标签下重要的参数
参数作用columns指定分片规则依据的字段algorithm指定分片规则实现调用的函数
2function/function标签下重要的参数
参数含义class指定该分片算法对应的类mapFile对应的外部配置文件type默认值为0 ; 0 表示Integer , 1 表示StringdefaultNode默认节点 默认节点的所用:枚举分片时,如果碰到不识别的枚举值, 就让它路由到默认节点 ; 如果没有默认值,碰到不识别的则报错count数据节点的数量seed创建murmur_hash对象的种子默认0virtualBucketTimes一个实际的数据库节点被映射为这么多虚拟节点默认是160倍也就是虚拟节点数是物理节点数的160倍;virtualBucketTimes*count就是虚拟结点数量weightMapFile节点的权重没有指定权重的节点默认是1。以properties文件的格式填写以从0开始到count-1的整数值也就是节点索引为key以节点权重值为值。所有权重值必须是正整数否则以1代替bucketMapPath用于测试时观察各物理节点与虚拟节点的分布情况如果指定了这个属性会把虚拟节点的murmur hash值与物理节点的映射按行输出到这个文件没有默认值如果不指定就不会输出任何东西startIndex字符子串起始索引size字符长度partitionCount分区(分片)数量defaultPartition默认分片(在分片数量定义时, 字符标示的分片编号不在分片数量内时,使用默认分片)partitionLengthhash求模基数 ; length*count1024 (出于性能考虑)partitionCount分区数hashSlicehash运算位 , 根据子字符串的hash运算 ; 0 代表 str.length(), -1 代表 str.length()-1 , 大于0只代表数字自身 ; 可以理解为substringstartendstart为0则只表示0dateFormat日期格式sBeginDate开始日期sEndDate结束日期如果配置了结束日期则代码数据到达了这个日期的分片后会重复从开始分片插入sPartionDay分区天数默认值 10 从开始日期算起每个10天一个分区
4.Server配置文件
在server.xml配置文件中主要包含了Mycat的系统配置信息其中有两个重要的标签
1system标签
在system标签中配置的是Mycat的系统属性包括端口号、SQL统计等等之类的属性。 常用的属性以及含义列表如下。
属性取值含义charsetutf8设置Mycat的字符集, 字符集需要与MySQL的字符集保持一致nonePasswordLogin0,10为需要密码登陆、1为不需要密码登陆 ,默认为0设置为1则需要指定默认账户useHandshakeV100,1使用该选项主要的目的是为了能够兼容高版本的jdbc驱动, 是否采用HandshakeV10Packet来与client进行通信, 1:是, 0:否useSqlStat0,1开启SQL实时统计, 1 为开启 , 0 为关闭 ; 开启之后, MyCat会自动统计SQL语句的执行情况 ; mysql -h 127.0.0.1 -P 9066 -u root -p 查看MyCat执行的SQL, 执行效率比较低的SQL , SQL的整体执行情况、读写比例等 ; show sql ; show sql.slow ; show sql.sum ;useGlobleTableCheck0,1是否开启全局表的一致性检测。1为开启 0为关闭 。sqlExecuteTimeout1000SQL语句执行的超时时间 , 单位为 s ;sequnceHandlerType0,1,2用来指定Mycat全局序列类型0 为本地文件1 为数据库方式2 为时间戳列方式默认使用本地文件方式文件方式主要用于测试sequnceHandlerPattern正则表达式必须带有MYCATSEQ或者 mycatseq进入序列匹配流程 注意MYCATSEQ_有空格的情况subqueryRelationshipChecktrue,false子查询中存在关联查询的情况下,检查关联字段中是否有分片字段 .默认 falseuseCompression0,1开启mysql压缩协议 , 0 : 关闭, 1 : 开启fakeMySQLVersion5.5,5.6设置模拟的MySQL版本号defaultSqlParser由于MyCat的最初版本使用了FoundationDB的SQL解析器, 在MyCat1.3后增加了Druid解析器, 所以要设置defaultSqlParser属性来指定默认的解析器; 解析器有两个 : druidparser 和 fdbparser, 在MyCat1.4之后,默认是druidparser, fdbparser已经废除了processors1,2…指定系统可用的线程数量, 默认值为CPU核心 x 每个核心运行线程数量; processors 会影响processorBufferPool, processorBufferLocalPercent, processorExecutor属性, 所有, 在性能调优时, 可以适当地修改processors值processorBufferChunk指定每次分配Socket Direct Buffer默认值为4096字节, 也会影响BufferPool长度, 如果一次性获取字节过多而导致buffer不够用, 则会出现警告, 可以调大该值processorExecutor指定NIOProcessor上共享 businessExecutor固定线程池的大小; MyCat把异步任务交给 businessExecutor线程池中, 在新版本的MyCat中这个连接池使用频次不高, 可以适当地把该值调小packetHeaderSize指定MySQL协议中的报文头长度, 默认4个字节maxPacketSize指定MySQL协议可以携带的数据最大大小, 默认值为16MidleTimeout30指定连接的空闲时间的超时长度;如果超时,将关闭资源并回收, 默认30分钟txIsolation1,2,3,4初始化前端连接的事务隔离级别,默认为 REPEATED_READ , 对应数字为3 READ_UNCOMMITED1; READ_COMMITTED2; REPEATED_READ3; SERIALIZABLE4;sqlExecuteTimeout300执行SQL的超时时间, 如果SQL语句执行超时,将关闭连接; 默认300秒;serverPort8066定义MyCat的使用端口, 默认8066managerPort9066定义MyCat的管理端口, 默认9066
2user标签
在user标签中主要是配置那些用户可以登陆到Mycat该用户必须在数据库中存在并且可以配置用户针对逻辑库、逻辑表的一些权限如果同时对逻辑库或者逻辑表都设置了权限那么逻辑表的权限大于逻辑库的权限。