Mycat是一個數據庫中間件產品,其前生是阿里巴巴的Cobar。地址:http://www.mycat.io/
一. Mycat的優勢
- 基於阿里巴巴的Cobar系統開發
- 開發社區活躍
- 完全開源可以自定義開發
- 支持多種關係型及NoSQL數據庫
- 使用Java開發,可以部署在多種系統上
二. Mycat的關鍵特性
- 支持SQL92標準
- 支持MySQL集羣
- 支持JDBC連接數據庫
- 支持NoSQL數據庫
- 支持自動故障切換,高可用性
- 支持讀寫分離
- 支持全局表
- 支持獨有的基於ER關係的分片策略
- 支持一致性hash分片
- 多平臺支持,部署簡單方便
- 支持全局序列號
三. Mycat的應用場景
- 需要進行讀寫分離的場景
- 需要進行分庫分表的場景
- 多租戶場景
- 數據統計系統
- HBase的一種替代方案
- 需要使用同樣的方式查詢多種數據庫的場景(MyCAT可連接多種數據庫)
四. Mycat的關鍵配置文件
1. schema.xml 用於配置邏輯庫表及數據節點
- <schema><table></table></schema>定義邏輯庫表
- <dataNode></dataNode>定義數據節點
- <dataHost></dataHost>定義數據節點的物理數據源
2. rule.xml用於配置表的分片規則
- <tableRule name=""><tableRule>定義表使用的分片規則
- <function name=""></function>定義分片算法
3. server.xml用於配置服務器權限
- <system><property name=""></property></system>用於定義系統配置,例如端口號、系統使用內存大小等
- <user></user>用於定義連接MyCAT的用戶(賬號密碼等)注意:這裏定義的用戶和後端數據庫的實際用戶可以不一樣
五. 管理Mycat
1. 使用MySQL客戶端管理MyCAT
- 管理端口<property name="managerPort">9066</property>
- mysql -uroot -p123456 -h127.0.0.1 -P9066 這裏的用戶名密碼是在server.xml中配置的信息
2. 簡單的管理mycat的命令
- show @@help; 查看管理命令
- reload @@config; 加載mycat配置文件,但是並不是所有的都能夠通過該命令加載的,有些還需要對mycat進行重啓
- show @@datanode; 查看mycat中配置的數據節點詳情
- show @@datasource; 查看mycat後端的物理數據庫服務器的詳情
- show @@backend;查看後端的數據庫的連接情況
六. MyCAT日誌管理
- MyCAT使用Apache log4j項目管理日誌
- 文件:conf/log4j2.xml