Cobar

一、背景介紹

? ? ? ? 在MySQL數(shù)據(jù)庫中,由于表的越來越大,導(dǎo)致了在單機(jī)環(huán)境下的性能下降,所以采用中間件對(duì)大表進(jìn)行分庫分表。

從Cobar架構(gòu)上看,Cobar作為中間件處于Application和MySQL SERVER之間,使應(yīng)用能夠透明地訪問數(shù)據(jù)庫而不用在乎后端的分布式結(jié)構(gòu):

Cobar架構(gòu)圖

之前在看到的一個(gè)中間件對(duì)比的博客:開源數(shù)據(jù)庫中間件對(duì)比

二、Cobar解決的問題

分布式:

Cobar的分布式主要是通過將表放入不同的庫來實(shí)現(xiàn):

????????1. Cobar支持將一張表水平拆分成多份分別放入不同的庫來實(shí)現(xiàn)表的水平拆分

????????2. Cobar也支持將不同的表放入不同的庫

????????3. 多數(shù)情況下,用戶會(huì)將以上兩種方式混合使用

注意:

1. Cobar不支持將一張表,例如test表拆分成test_1, test_2, test_3.....放在同一個(gè)庫中,必須將拆分后的表分別放入不同的庫來實(shí)現(xiàn)分布式。

2. 考慮到高QPS,所以在Cobar上線前必須進(jìn)行中間件的壓測(cè),并對(duì)結(jié)果進(jìn)行分析。

HA:

在用戶配置了MySQL心跳的情況下,Cobar可以自動(dòng)向后端連接的MySQL發(fā)送心跳,判斷MySQL運(yùn)行狀況,一旦運(yùn)行出現(xiàn)異常,Cobar可以自動(dòng)切換到備機(jī)工作。但需要強(qiáng)調(diào)的是:

????????1. Cobar的主備切換有兩種觸發(fā)方式,一種是用戶手動(dòng)觸發(fā),一種是Cobar的心跳語句檢測(cè)到異常后自動(dòng)觸發(fā)。那么,當(dāng)心跳檢測(cè)到主機(jī)異常,切換到備機(jī),如果主機(jī)恢復(fù)了,需要用戶手動(dòng)切回主機(jī)工作,Cobar不會(huì)在主機(jī)恢復(fù)時(shí)自動(dòng)切換回主機(jī),除非備機(jī)的心跳也返回異常。

????????2. Cobar只檢查MySQL主備異常,不關(guān)心主備之間的數(shù)據(jù)同步,因此用戶需要在使用Cobar之前在MySQL主備上配置雙向同步,詳情可以參閱MySQL參考手冊(cè)

注:HA功能需要MySQL配置雙向同步,但是MySQL雙向同步在實(shí)際生產(chǎn)環(huán)境不穩(wěn)定時(shí)會(huì)出現(xiàn)數(shù)據(jù)不一致的情況,所以建議不使用Cobae進(jìn)行HA搭建。

具體的詳細(xì)配置,在github上介紹的非常清楚,需要根據(jù)實(shí)際環(huán)境進(jìn)行:

Cobar-github

Cobar-Quick-Start

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容