龙空技术网

Mycat最全面的配置文件之搞定server.xml

气质非凡的假面先生 146

前言:

当前大家对“mycat连接数”大约比较关注,朋友们都想要知道一些“mycat连接数”的相关知识。那么小编也在网上搜集了一些有关“mycat连接数””的相关文章,希望各位老铁们能喜欢,姐妹们一起来了解一下吧!

server.xml 几乎保存了所有 mycat 需要的系统配置信息。

user标签

用于定义登录mycat的用户和权限

<user name="test">

<property name="password">test</property>

<property name="schemas">TESTDB</property>

<property name="readOnly">true</property>

<property name="benchmark">11111</property>

<property name="usingDecrypt">1</property>

<privileges check="false">

<schema name="TESTDB" dml="0010" showTables="custome/mysql">

<table name="tbl_user" dml="0110"></table>

<table name="tbl_dynamic" dml="1111"></table>

</schema>

</privileges>

</user>

上面的例子中,定义了一个用户,用户名为test,密码为test可访问的schema只有TESTDB。

这个标签嵌套的property标签是具体声明的属性值

property子标签属性值:

password: 密码

schemas: 指定用户可访问的schema,多个schema使用英文字符逗号分隔。

readOnly: 指定用户是否只读,true为只读。

benchmark: Mycat连接服务降级处理,当前端的整体connection数达到基准值时,对来自该用户的请求开始拒绝连接,0或不设表示不限制

usingDecrypt: 是否对密码加密,默认 0 不加密,如需开启设置为1,同时使用加密程序对密码加密,加密命令如下

java -cp Mycat-server-1.4.1-dev.jar org.opencloudb.util.DecryptUtil 0:user:password

Mycat-server-1.4.1-dev.jar 为mycat download 下载目录的jar

0:user:password 中 0 为前端加密标志

privileges子标签

对用户的schema及下级的table进行精细的DML权限控制

<privileges check="true">

<schema name="TESTDB" dml="0110" >

<table name="table01" dml="0111"></table>

<table name="table02" dml="1111"></table>

</schema>

<schema name="TESTDB1" dml="0110">

<table name="table03" dml="1110"></table>

<table name="table04" dml="1010"></table>

</schema>

</privileges>

privileges的相关属性

check: 用于标识是否开启DML权限检查,默认false不检查

schema/table的相关属性

dml: 分别对应控制insert,update,select,delete的权限(如:0000禁止增删改查)

PS: 设置了schema,但只设置了部分table或没有设置table的DML,自动继承schema的DML属性

system标签

该标签的property子标签都与系统配置有关

<system>

<property name="charset">utf8</property>

<property name="defaultSqlParser">druidparser</property>

<property name="nonePasswordLogin">0</property>

<property name="useHandshakeV10">1</property>

<property name="useSqlStat">0</property>

<property name="useGlobleTableCheck">0</property>

<property name="sequnceHandlerType">2</property>

<property name="subqueryRelationshipCheck">false</property>

<property name="processorBufferPoolType">0</property>

<property name="handleDistributedTransactions">0</property>

<property name="useOffHeapForMerge">1</property>

<property name="memoryPageSize">64k</property>

<property name="spillsFileBufferSize">1k</property>

<property name="useStreamOutput">0</property>

<property name="systemReserveMemorySize">384m</property>

<property name="useZKSwitch">false</property>

</system>

下面将统一省略property直接使用这个标签的name属性内的值来介绍。

property标签属性值:

charset: 字符集设置。

defaultSqlParser: 指定默认的解析器,取值有:druidparser和 fdbparser(1.3 解析器默认为fdbparser,1.4默认为druidparser,1.4以后fdbparser作废)

processors: 指定系统可用的线程数,默认值为机器CPU核心线程数。

processorBufferChunk: 指定每次分配Socket Direct Buffer的大小,默认是4096个字节。

processorBufferPool: 指定bufferPool计算 比例值

processorBufferLocalPercent: 控制分配ThreadLocalPool的大小(比例值,默认100)

processorExecutor: 指定NIOProcessor上共享的businessExecutor固定线程池大小

sequnceHandlerType: 指定使用Mycat全局序列的类型。0为本地文件方式,1为数据库方式,2为时间戳序列方式,3为分布式ZK ID生成器,4为zk递增id生成。

useOffHeapForMerge: 是否启用非堆内存处理跨分片结果集(0 关闭,1 开启)

handleDistributedTransactions: 分布式事务开关,0为不过滤分布式事务,1为过滤分布式事务(如果分布式事务内只涉及全局表,则不过滤),2为不过滤分布式事务,但是记录分布式事务日志

useGlobleTableCheck: 是否开启全局表一致性检测 (1 开启 0 关闭)

fakeMySQLVersion: 设置模拟的MySQL版本号

bindIp: mycat服务监听的IP地址,默认值为0.0.0.0

serverPort: 定义mycat的使用端口,默认值为8066

managerPort: 定义mycat的管理端口,默认值为9066

processorCheckPeriod: 清理NIOProcessor上前后端空闲、超时和关闭连接的间隔时间。默认是1秒,单位毫秒

dataNodeIdleCheckPeriod: 对后端连接进行空闲、超时检查的时间间隔,默认是300秒,单位毫秒

dataNodeHeartbeatPeriod: 对后端所有读、写库发起心跳的间隔时间,默认是10秒,单位毫秒

sqlExecuteTimeout: SQL执行超时的时间,默认时间为300秒,单位秒

txIsolation: 前端连接的初始化事务隔离级别,默认为3(READ_UNCOMMITTED=1,READ_COMMITTED=2,REPEATED_READ=3,SERIALIZABLE=4)

idleTimeout: 指定连接的空闲超时时间,默认30分钟,单位毫秒

maxPacketSize: 指定Mysql协议可以携带的数据最大长度。默认16M

packetHeaderSize: 指定Mysql协议中的报文头长度。默认4

subqueryRelationshipCheck: 子查询中存在关联查询的情况下,检查关联字段中是否有分片字段 .默认 false

nonePasswordLogin: 0为需要密码登陆、1为不需要密码登陆 ,默认为0,设置为1则需要指定默认账户

标签: #mycat连接数