企业实战_04_MyCat常用配置文件详解
生活随笔
收集整理的這篇文章主要介紹了
企业实战_04_MyCat常用配置文件详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Mycat 常用配置文件,配置靈活,能應用于場景很多,建議根據應用場景去記憶,要理解!
接上一篇:企業實戰_03_MyCat下載、安裝、啟動
https://gblfy.blog.csdn.net/article/details/100049304
文章目錄
- 一、Mycat目錄說明
- 二、Mycat常用的配置文件
- 2.1. 配置3劍客
- 2.2. Mycat 2個配置1步走
- 三、server.xml
- 3.1. system標簽及樣例
- 3.2. user 標簽
- 3.3. 對一個邏輯庫有訪問權限
- 3.4. 對多個邏輯庫有訪問權限
- 3.5. 對指定庫的表的權限
- 3.6. 源文件
- 四、schema.xml
- 4.1. 節點說明
- 4.2. 樣例
- 4.3. 舉個栗子:
- 五、rule.xml
- 5.1.文件用途
- 5.2. 企業樣例
- 5.3. 舉個栗子
一、Mycat目錄說明
| bin | mycat命令,啟動、重啟、停止等 |
| conf | Mycat 配置信息 |
| lib | Mycat引用的jar包,Mycat是java開發的 ,用戶密碼加密的jar也在這 |
| logs | 日志文件,包括Mycat啟動的日志和運行的日志 |
| catlet | catlet為Mycat的一個擴展功能 |
二、Mycat常用的配置文件
- Mycat的配置文件都在conf目錄里面:
2.1. 配置3劍客
| server.xm | ①系統相關參數②用戶訪問權限③SQL防火墻及SQL攔截功能 |
| schema.xml | ①主機節點 ②數據節點③邏輯庫④邏輯表⑤自增ID⑥規則算法名稱 |
| rule.xml | ① 規則類②算法③Mycat分片(分庫分表) |
2.2. Mycat 2個配置1步走
- 全局自增id 場景
- 2配置指需要配置2個文件
- 1步走指的是需要執行一條插入語句設置自增規則
| dbseq.sql | Mycat全局自增id,初始化表結構 |
| sequence_db_conf.properties | 全局增id的表及數據節點 |
三、server.xml
3.1. system標簽及樣例
| <system></system> | 配置MyCat系統參數 key value形式 |
樣例
<system><!-- 定義mycat對外提供的服務的端口 --><property name="${key}">${value}</property></system>舉個栗子:
<system><!-- 定義mycat對外提供的服務的端口 --><property name="serverPort">8066</property></system>3.2. user 標簽
| <user></user> | 配置MyCat的訪問用戶及權限 |
3.3. 對一個邏輯庫有訪問權限
3.4. 對多個邏輯庫有訪問權限
邏輯庫有多個請采取以下配置
<!-- mycat用戶 --><user defaultAccount="true" name="app_imooc"><!-- 密碼加密需要添加此設置 --><property name="usingDecrypt">1</property><!-- 密碼 --><property name="password">bDbWr7bVMgszTe82oMo8NaUsmFFdPCNl/lYXzOYoG8anTpQLvdx5e+LYJEmT0IAeSVp1loyxSZPyv1GoHbHFHg==</property><!-- 多個邏輯庫名,用“”,“”分割即可 --><property name="schemas">imooc_db,imooc_db01,imooc_db02</property></user>3.5. 對指定庫的表的權限
3.6. 源文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE serverSYSTEM 'server.dtd'> <mycat:server xmlns:mycat="http://io.mycat/"><system><!-- 定義mycat對外提供的服務的端口 --><property name="serverPort">8066</property><!-- mycat管理端口 --><property name="managerPort">9066</property><!-- mycat登錄是否需要驗證0 驗證1 不驗證--><property name="nonePasswordLogin">0</property><!-- mycat對那臺機器進行建通 監聽所有 0.0.0.0監聽指定機器 IP地址--><property name="bindIp">0.0.0.0</property><!-- 前端寫隊列的大小 --><property name="frontWriteQueueSize">2048</property><!-- 與數據庫編碼保持一致即可 --><property name="charset">utf-8</property><!-- mycat連接mysql的隔離級別 讀未提交 1讀已提交 2可重復讀 3序列化讀 4--><property name="txIsolation">2</property><!-- mycay進程數量 等于CPU核數 --><property name="processors">8</property><property name="idleTimeout">1800000</property><!-- 當sql執行超過多少秒后,mycat會對連接進行斷開 單位秒 --><property name="sqlExecuteTimeout">300</property><property name="useSqlStat">0</property><property name="useGlobleTableCheck">0</property><property name="sequnceHandlerType">1</property><!-- mycat默認返回數據集的大小 這里設置100行--><property name="defaultMaxLimit">100</property><!-- mysql允許最大包的大小 --><property name="maxPacketSize">104857600</property></system><!-- mycat用戶 --><user defaultAccount="true" name="app_imooc"><!-- 密碼加密需要添加此設置 --><property name="usingDecrypt">1</property><!-- 密碼 --><property name="password">bDbWr7bVMgszTe82oMo8NaUsmFFdPCNl/lYXzOYoG8anTpQLvdx5e+LYJEmT0IAeSVp1loyxSZPyv1GoHbHFHg==</property><!-- 邏輯庫名 --><property name="schemas">imooc_db</property></user> </mycat:server>四、schema.xml
4.1. 節點說明
| schema | 配置邏輯庫名 |
| dataNode | 數據節點 |
| dataHost | 物理主機節點 |
| table | 邏輯表 |
4.2. 樣例
<?xml version="1.0"?> <!DOCTYPE schema SYSTEM 'schema.dtd'> <mycat:schema xmlns:mycat="http://io.mycat/"><schema checkSQLschema="false" name="邏輯庫名" sqlMaxLimit="100"><table dataNode="數據節點" name="邏輯表名" primaryKey="邏輯表主鍵" rule="規則名" /></schema><dataNode dataHost="主機節點" database="物理數據庫名" name="數據節點名"/><dataHost balance="3" dbDriver="native" dbType="數據庫類型" maxCon="1000" minCon="10" name="主機節點名" switchType="1" writeType="0"><heartbeat>select user()</heartbeat><writeHost host="物理IP地址" password="密碼" url="物理IP地址:端口號" user="操作數據庫用戶"/></dataHost> </mycat:schema>4.3. 舉個栗子:
<?xml version="1.0"?> <!DOCTYPE schemaSYSTEM 'schema.dtd'> <mycat:schema xmlns:mycat="http://io.mycat/"><schema checkSQLschema="false" name="imooc_db" sqlMaxLimit="100"><table dataNode="ordb" name="order_master" primaryKey="order_id"/></schema><dataNode dataHost="mysqlnode01" database="order_db" name="ordb"/><dataHost balance="3" dbDriver="native" dbType="mysql" maxCon="1000" minCon="10" name="mysqlnode03" switchType="1" writeType="0"><heartbeat>select user()</heartbeat><writeHost host="192.168.43.172" password="123456" url="192.168.43.172:3306" user="im_mycat"/></dataHost> </mycat:schema>五、rule.xml
5.1.文件用途
- 配置水平分片的分片規則:定義了表中使用哪一個標識來進行分片的
- 配置分片規則所對應的分片函數:具體實現分片函數的一個Java代碼或者java的類
標簽說明
| tableRule | 表規則名 |
| columns | 規則字段 |
| algorithm | 規則設置 |
| function | 規則算法 |
| property | 規則分片的數量 |
5.2. 企業樣例
#標簽配置值的分片規則
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat:rule SYSTEM "rule.dtd"> <mycat:rule xmlns:mycat="http://io.mycat/"><!-- 規則名:采用hash取模 4片 分片字段id --><tableRule name="hash-mod-4_id"><rule><!-- 分片列就是分片字段 --><columns>id</columns><!-- 算法名 --><algorithm>hash-mod-4</algorithm></rule></tableRule><!-- 具體應用的算法 --><function name="hash-mod-4" class="io.mycat.route.function.PartitionByHashMod" ><property name="count">4</property></function> </mycat:rule>- 標簽制定標的分片列
- 指定分片算法,取的name屬性
#配置標的分片算法
<!-- 具體應用的算法 --><function name="hash-mod-4" class="io.mycat.route.function.PartitionByHashMod" ><property name="count">4</property></function> </mycat:rule>- name 屬性定義分片算法
- Class 屬性指定分片算法實現類,必須是全類名
- property 屬性指定分片個數
5.3. 舉個栗子
下一篇:企業實戰_05_MyCat用戶密碼加密
https://gblfy.blog.csdn.net/article/details/100056536
總結
以上是生活随笔為你收集整理的企业实战_04_MyCat常用配置文件详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业实战(Jenkins+GitLab+
- 下一篇: Launch failed - clea