-
MYCAT讀寫分離
查看全部 -
MYCAT讀寫分離配置:
Linux環境下:
停止MYCAT: bin/mycat stop
啟動MYCAT:? ?bin/mycat start
查看全部 -
server.xml文件:定義了所有與MYCAT系統相關的配置
<system><property name=""></property></system>用于定義系統配置,比如系統的端口號,系統的內存大小,超時時間等
<user></user>用于定義連接MyCAT的用戶,比如用戶名,密碼等
查看全部 -
rule.xml文件:定義了對表的分片規則
<tableRule name=""></tableRule>定義表使用的分片規則
<function name=""></function>定義分片算法
查看全部 -
schema.xml文件:
1. <schema><table></table></schema>定義邏輯庫表
2. <dataNode></dateNode>定義數據節點
schema:定義邏輯庫
table:定義邏輯庫下的邏輯表
通過這組標簽可以知道:邏輯表依賴于邏輯庫爾存在的,如果數據庫不需要分片,只需要讀寫分離,那么就可以不配置邏輯表(table),只需保留schema標簽就可以了
dateNode:定義分片節點
一個數據節點代表一個獨立的數據分片,這個標簽中定義的內容包括:節點名字、物理數據庫的名字
3. <dataHost></dataHost>定義數據節點的物理數據源
dataHost:定義物理數據源的信息(物理數據庫實例),它定義了一組主機節點,這組節點是一個真實的物理數據庫實例。一個dataHost所指定的主機就是一組真實的MySQL集群,除此之外還包括定義讀寫分離的配置和心跳語句的配置。
查看全部 -
mycat的關鍵配置文件
1、schema.xml:用于配置邏輯庫表及數據節點
2、rule.xml:用于配置表的分片規則
3、server.xml:用于配置服務器權限
server.xml文件
system:定義與mycat系統相關的一些重要配置,比如:端口號、系統使用內存大小等等
user:定義連接mycat的用戶(賬號、密碼等)
注意:這里定義的用戶和后端數據庫的實際用戶時不一樣的
rule.xml文件
1、tableRule:定義表使用的分片規則
2、function:定義分片算法
schema:定義邏輯庫
table:定義邏輯庫下的邏輯表
通過這組標簽可以知道:邏輯表依賴于邏輯庫爾存在的,如果數據庫不需要分片,只需要讀寫分離,那么就可以不配置邏輯表(table),只需保留schema標簽就可以了
dateNode:定義分片節點
一個數據節點代表一個獨立的數據分片,這個標簽中定義的內容包括:節點名字、物理數據庫的名字
dataHost:定義物理數據源的信息(物理數據庫實例)
查看全部 -
啟動MYCAT
查看全部 -
安裝java運行環境1.7以上
下載mycat源
wget?http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
配置環境變量
vi /etc/profile
export MYCAT_HOME=/usr/local/mycat
查看全部 -
安裝MYCAT
查看全部 -
MYCAY的關鍵特性:
1. 支持sql92標準:sql92標準是大多數關系型數據庫都支持的一個SQL標準,這個標準中定義了SQL語句的一些功能和標準的一些事務的特性,比如說隔離級別等。
2. 支持MYSQL集群:一主多從,一主一從,多主多從等。
3. 支持JDBC連接數據庫:可以通過JDBC來連接除了MySQL之外的其他關系型數據庫,比如Oracle,MSSQL,SqlServer,PgSQL等
4. 支持NOSQL數據庫: 比如MongoDB。
5. 支持自動故障切換,高可用性
6. 支持讀寫分離
7. 支持全局表:全局部就是一些比較小的字典表,這些表一般都很小,并且經常與其他數據表進行關聯使用。MYCAT可以把同樣的數據自動的存儲到多個分片節點上,這樣可以有效提高表之間的關聯效率。
8. 支持獨有的基于ER關系的分片策略:ER關系就是實體關系模型,是關系型數據庫的基礎。ER關系的分片策略是基于ER關系模型來實現的,這種分片策略可以把子表記錄與所關聯的附表存放到同一個數據分片上。也就是說子表可以依賴于附表來進行存儲,這樣就保證了在子表與附表關聯的時候不會跨分片跨庫來進行操作。
9. 支持一致性HASH分片
10. 基于Java開發,支持多平臺運行與部署
11. 支持全局序列號:全局序列號保證Id全局唯一
查看全部 -
MYCAT的基本概念:
1. MYCAT中的數據庫——邏輯庫,
位于中間層,它屏蔽了分庫、分表后,數據庫操作的復雜性。前端應用可以像使用一個未分庫、分表的數據庫一樣來使用分庫、分表的數據庫(數據庫路由等都是由中間件實現)
user_db是邏輯數據庫
db01、db02、db03是物理數據庫
mycat中只保存邏輯庫的定義,不保存數據,具體的數據存儲在物理數據庫中
2. MYCAT中的數據庫——邏輯表:前端應用通過MYCAT所看到的表就是邏輯表,一個邏輯表可能對應后端的多個物理數據庫中的表,比如User_DB邏輯庫中有一張user_info邏輯表,而實際上user_info表中的數據是存儲在db01,db02,db03物理庫中的物理user_info表中。
查看全部 -
MYCAT的主要作用:MYCAT可以實現數據庫的垂直拆分
數據庫的垂直拆分:可以稱之為縱向的拆分,把數據庫中的表按照一定的規則來分攤到多個數據庫實例中,比如一個電商系統可以將用戶模塊、訂單模塊、支付模塊等相關涉及的表分別存放到用戶庫,訂單庫,支付庫中。
數據庫的水平拆分:也就是分庫分表,在經過垂直拆分后,業務量持續發展,規模相當大。這時,拆分過后的用戶庫已經不能滿足需求,這時需要通過一定的規則進行水平拆分
切蛋糕(從左向右水平分開)
將原來的一個用戶庫分成多個用戶庫,通過一定的規則進行切分(拆分之后,每個庫中的表結構都一樣),前端應用通過mycat和切分規則來對后端切分后的數據庫進行訪問
查看全部 -
MYCAT的主要作用:
2. 實現數據庫的讀寫分離,MYCAT支持讀負載均衡,多出現在一主多從的架構上,讀操作可以在多個從服務器上進行均衡。MYCAT還支持后端MySQL主從復制集群高可用。
這里的高可用:指的是可以在配置的時候,除了主節點之外,在指定一臺從節點也可以支持寫的功能,當主節點宕機之后,MYCAT會把寫的SQL路由到我們在配置文件中指定的從節點上,并且并不支持把其他的從節點設置為新的主節點進行主從同步的功能。
查看全部 -
MYCAT的主要作用:
1. MYCAT實現了MySQL通信協議的一個分布式數據庫系統中間層。
數據庫中間層的作用:數據庫讀寫分離、讀負載均衡、數據庫連接池(控制數據庫的連接數量)、屏蔽后端數據庫的變更,對關系型數據庫、非關系型數據庫進行操作。
查看全部 -
MYCAT的前世今生
查看全部
舉報