MyCat配置檔案詳解--server.xml
阿新 • • 發佈:2019-01-09
server.xml 包含mycat的系統配置資訊,它有兩個標籤,分別是user和system,掌握system標籤的各項配置屬性是mycat調優的關鍵。
<?xml version="1.0" encoding="UTF-8"?> <!-- - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. --> <!DOCTYPE mycat:server SYSTEM "server.dtd"> <mycat:server xmlns:mycat="http://io.mycat/"> <system> <!-- 配置該屬性的時候一定要保證mycat的字符集和mysql 的字符集是一致的 --> <property name="charset">utf8</property> <!-- 指定每次分配socker direct buffer 的值,預設是4096位元組 --> <property name="processorBufferChunk">4096/property> <!-- 配置系統可用的執行緒數量,預設值為CPU核心X每個核心執行執行緒的數量 --> <property name="processors">4/property> <!-- 指定BufferPool 的計算比例 預設值為bufferChunkSize(4096)X processors X 1000 <property name="processorBufferPool">100000000/property> --> <!-- 用來控制ThreadLocalPool 分配Pool的比例大小,預設值為100 <property name="processorBufferLocalPercent">100/property> --> <!-- 用來指定Mycat全域性序列型別,0為本地檔案,1為資料庫方式,2為時間戳列方式,預設使用本地檔案方式,檔案方式主要用於測試 <property name="sequnceHandlerType">0/property> --> <!-- TCP 引數配置,mycat在每次建立前後端連線時候,都會使用這些引數初始化TCP屬性,詳細可以檢視Java API 文件:http://docs.oracle.com/javase/7/docs/api/net/StandardSocketOptions.html <property name="frontSocketSoRcvbuf">1024*1024/property> <property name="frontSocketSoSndbuf">4*1024*1024/property> <property name="frontSocketNoDelay">1/property> <property name="backSocketSoRcvbuf">4*1024*1024/property> <property name="backSocketSoSndbuf">1024*1024/property> <property name="backSocketNoDelay">1/property> --> <!-- mysql 連線相關配置 --> <!-- <property name="packetHeaderSize">4</property> 指定mysql協議中的報文頭長度,預設4個位元組--> <!-- <property name="maxPacketSize">1024*1024*16</property> 配置可以攜帶的資料量最大值,預設16M--> <!-- <property name="idleTimeout">1024*1024*16</property> 指定連線的空閒時間超時長度,如果某個連線空閒時間超過該值,則將連線關閉並回收,單位為毫秒,預設值為30分鐘--> <!-- <property name="txIsolation">3</property> 初始化前端連線事務的隔離級別有: READ_UNCOMMITTED=1 READ_COMMITTED=2 REPEATED_READ=3 SERIALIZABLE=4 預設為3--> <!-- <property name="sqlExecuteTimeout">3</property>執行sql超時時間,預設為300秒--> <!-- 心跳屬性配置 --> <!-- <property name="processorCheckPeriod">1000</property>清理前後端空閒、超時、關閉連線的時間間隔,單位為毫秒,預設為1秒--> <!-- <property name="dataNodeIdleCheckPeriod">300*1000</property>對後端連線進行空閒,超時檢查的時間間隔,單位為毫秒,預設為300秒--> <!-- <property name="dataNodeHeartbeatPeriod">10*1000</property>對後端所有讀寫庫發起心跳的間隔時間,單位為毫秒,預設為10秒--> <!-- 服務相關屬性 --> <!-- <property name="bindIp">0.0.0.0</property>mycat服務監聽的ip地址,預設為0.0.0.0--> <!-- <property name="serverPort">8066</property>定義mycat使用的埠,預設值為8066--> <!-- <property name="managerPort">9066</property>定義mycat管理的埠,預設值為9066--> <!-- 分散式事務開關屬性 --> <!-- <property name="handleDistributedTransactions">0</property>0為不過濾分散式事務,1過濾分散式事務,2不過濾分散式事務,但是記錄分散式事務日誌。主要使用者是否允許跨庫事務。mycat 1.6版本開始,支援此屬性--> <!-- <property name="useOffHeapForMerge">1</property>配置是否啟用非堆記憶體跨分片結果集,1為開啟,0為關閉,mycat1.6開始支援該屬性--> <!-- 全域性表一致性檢測 --> <property name="useGlobleTableCheck">0</property> <!--通過新增_MYCAT_OP_TIME欄位來進行一致性檢測,為BIGINT型別 1為開啟全加班一致性檢測、0為關閉 --> <property name="useSqlStat">0</property> <!-- 1為開啟實時統計、0為關閉 --> <!-- <property name="useCompression">1</property>--> <!--1為開啟mysql壓縮協議--> <!-- <property name="fakeMySQLVersion">5.6.20</property>--> <!--設定模擬的MySQL版本號--> <!-- <property name="processors">1</property> <property name="processorExecutor">32</property> --> <!--預設為type 0: DirectByteBufferPool | type 1 ByteBufferArena--> <property name="processorBufferPoolType">0</property> <!--預設是65535 64K 用於sql解析時最大文字長度 --> <!--<property name="maxStringLiteralLength">65535</property>--> <!--<property name="processorExecutor">16</property>--> <!-- <property name="serverPort">8066</property> <property name="managerPort">9066</property> <property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property> <property name="frontWriteQueueSize">4096</property> <property name="processors">32</property> --> <!--分散式事務開關,0為不過濾分散式事務,1為過濾分散式事務(如果分散式事務內只涉及全域性表,則不過濾),2為不過濾分散式事務,但是記錄分散式事務日誌--> <property name="handleDistributedTransactions">0</property> <!--單位為m--> <property name="memoryPageSize">1m</property> <!--單位為k--> <property name="spillsFileBufferSize">1k</property> <property name="useStreamOutput">0</property> <!--單位為m--> <property name="systemReserveMemorySize">384m</property> <!--是否採用zookeeper協調切換 --> <property name="useZKSwitch">true</property> </system> <!-- 全域性SQL防火牆設定 --> <!-- <firewall> <whitehost> <host host="127.0.0.1" user="mycat"/> <host host="127.0.0.2" user="mycat"/> </whitehost> <blacklist check="false"> </blacklist> </firewall> --> <!-- 定義登入mycat對的使用者許可權 --> <user name="root"> <property name="password">123456</property> <!-- 若要訪問TESTDB 必須現在server.xml 中定義,否則無法訪問TESTDB--> <property name="schemas">TESTDB</property> <!-- 配置是否允許只讀 --> <property name="readOnly">true</property> <!-- 定義限制前端整體的連線數,如果其值為0,或者不設定,則表示不限制連線數量 --> <property name="benchmark">11111</property> <!-- 設定是否開啟密碼加密功能,預設為0不開啟加密,為1則表示開啟加密 --> <property name="usingDecrypt">1</property> <!-- 表級 DML 許可權設定 --> <!-- <privileges check="false"> <schema name="TESTDB" dml="0110" > <table name="tb01" dml="0000"></table> <table name="tb02" dml="1111"></table> </schema> </privileges> --> </user> </mycat:server>