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ā)。那么,當(dāng)心跳檢測到主機異常,切換到備機,如果主機恢復(fù)了,需要用戶手動切回主機工作,Cobar不會在主機恢復(fù)時自動切換回主機,除非備機的心跳也返回異常。
2. Cobar只檢查MySQL主備異常,不關(guān)心主備之間的數(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表的一部分?jǐn)?shù)據(jù)被映射到物理數(shù)據(jù)庫dbtest2的tb2上,另外一部分?jǐn)?shù)據(jù)被映射到物理數(shù)據(jù)庫dbtest3的tb2上。

MySQL所在服務(wù)器IP為192.168.31.180,端口為3306,用戶名為 item_dev,密碼為142569,我們需要創(chuàng)建 database:dbtest1、dbtest2、dbtest3,table:tb1、tb2:



Cobar配置,文件內(nèi)容通俗易懂:
Cobar解壓之后有四個目錄:
bin/:可執(zhí)行文件目錄,包含啟動,關(guān)閉和重啟腳本
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
