Cobar簡介(了解)
分布式:
Cobar的分布式主要是通過將表放入不同的庫來實現(xiàn):
1. Cobar支持將一張表水平拆分成多份分別放入不同的庫來實現(xiàn)表的水平拆分;
2. Cobar也支持將不同的表放入不同的庫氏义。
HA:
在用戶配置了MySQL心跳的情況下,Cobar可以自動向后端連接的MySQL發(fā)送心跳峰档,判斷MySQL運行狀況横媚,一旦運行出現(xiàn)異常雏逾,Cobar可以自動切換到備機工作巢株。但需要強調(diào)的是:
1. Cobar的主備切換有兩種觸發(fā)方式,一種是用戶手動觸發(fā)犹芹,一種是Cobar的心跳語句檢測到異常后自動觸發(fā)崎页。那么,當心跳檢測到主機異常腰埂,切換到備機飒焦,如果主機恢復了,需要用戶手動切回主機工作屿笼,Cobar不會在主機恢復時自動切換回主機牺荠,除非備機的心跳也返回異常。
2. Cobar只檢查MySQL主備異常驴一,不關心主備之間的數(shù)據(jù)同步休雌,因此用戶需要在使用Cobar之前在MySQL主備上配置雙向同步。
開始正文
1.需求
數(shù)據(jù)量擴大后數(shù)據(jù)庫高效肝断,正常運行杈曲。
2.測試
Cobar本地單點部署測試(后面介紹集群部署)
簡單分庫分表Demo:
系統(tǒng)對外提供的數(shù)據(jù)庫名是 dbtest ,并且其中有兩張表tb1和tb2胸懈。
tb1表的數(shù)據(jù)被映射到物理數(shù)據(jù)庫dbtest1的tb1上担扑。
tb2表的一部分數(shù)據(jù)被映射到物理數(shù)據(jù)庫dbtest2的tb2上,另外一部分數(shù)據(jù)被映射到物理數(shù)據(jù)庫dbtest3的tb2上趣钱。
MySQL所在服務器IP為192.168.31.180涌献,端口為3306,用戶名為 item_dev首有,密碼為142569燕垃,我們需要創(chuàng)建 database:dbtest1、dbtest2绞灼、dbtest3利术,table:tb1、tb2:
Cobar配置低矮,文件內(nèi)容通俗易懂:
Cobar解壓之后有四個目錄:
bin/:可執(zhí)行文件目錄印叁,包含啟動,關閉和重啟腳本
lib/:邏輯類庫目錄军掂,包含了Cobar所需的jar包
conf/:配置文件目錄
logs/:運行日志目錄轮蜕,最主要的log有兩個:stdout.log 和 console.log
schema.xml:
rule.xml:可以看出分表的規(guī)則是,按照id字段把tb2表中的數(shù)據(jù)分配到dnTest2和dnTest3兩個分區(qū)中蝗锥,其中id小于512的數(shù)據(jù)會被放到dnTest2庫的分區(qū)中跃洛,而其余的會被放到dnTest3庫的分區(qū)中,等多路由算法待研究终议。
rule.xml
server.xml汇竭,集群配置也要在這里葱蝗,<cluster>:
運行Cobar:
[admin@DELL cobar-server-1.2.6]$ ./bin/startup.sh
登錄Cobar:
[admin@DELL cobar-server-1.2.6]$ mysql -h192.168.31.180 -utest -ptest -P8066 -Ddbtest