Cobar簡介(了解)
分布式:
Cobar的分布式主要是通過將表放入不同的庫來實現:
1. Cobar支持將一張表水平拆分成多份分別放入不同的庫來實現表的水平拆分;
2. Cobar也支持將不同的表放入不同的庫。
HA:
在用戶配置了MySQL心跳的情況下,Cobar可以自動向后端連接的MySQL發送心跳,判斷MySQL運行狀況,一旦運行出現異常,Cobar可以自動切換到備機工作。但需要強調的是:
1. Cobar的主備切換有兩種觸發方式,一種是用戶手動觸發,一種是Cobar的心跳語句檢測到異常后自動觸發。那么,當心跳檢測到主機異常,切換到備機,如果主機恢復了,需要用戶手動切回主機工作,Cobar不會在主機恢復時自動切換回主機,除非備機的心跳也返回異常。
2. Cobar只檢查MySQL主備異常,不關心主備之間的數據同步,因此用戶需要在使用Cobar之前在MySQL主備上配置雙向同步。
開始正文
1.需求
數據量擴大后數據庫高效,正常運行。
2.測試
Cobar本地單點部署測試(后面介紹集群部署)
簡單分庫分表Demo:
系統對外提供的數據庫名是 dbtest ,并且其中有兩張表tb1和tb2。
tb1表的數據被映射到物理數據庫dbtest1的tb1上。
tb2表的一部分數據被映射到物理數據庫dbtest2的tb2上,另外一部分數據被映射到物理數據庫dbtest3的tb2上。
MySQL所在服務器IP為192.168.31.180,端口為3306,用戶名為 item_dev,密碼為142569,我們需要創建 database:dbtest1、dbtest2、dbtest3,table:tb1、tb2:
Cobar配置,文件內容通俗易懂:
Cobar解壓之后有四個目錄:
bin/:可執行文件目錄,包含啟動,關閉和重啟腳本
lib/:邏輯類庫目錄,包含了Cobar所需的jar包
conf/:配置文件目錄
logs/:運行日志目錄,最主要的log有兩個:stdout.log 和 console.log
schema.xml:
rule.xml:可以看出分表的規則是,按照id字段把tb2表中的數據分配到dnTest2和dnTest3兩個分區中,其中id小于512的數據會被放到dnTest2庫的分區中,而其余的會被放到dnTest3庫的分區中,等多路由算法待研究。
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