在我們的業(yè)務(wù)系統(tǒng)中,隨著業(yè)務(wù)的增長(zhǎng),數(shù)據(jù)庫(kù)的壓力也隨之產(chǎn)生,特別對(duì)于查詢多于寫(xiě)入的業(yè)務(wù)環(huán)境下,迫切需要對(duì)讀操作和寫(xiě)操作分離開(kāi)來(lái),這篇博文,主要描述mysql官方提供的mysql-proxy軟件來(lái)實(shí)現(xiàn)讀寫(xiě)分離[其實(shí)主要是通過(guò)lua腳本實(shí)現(xiàn)的],再結(jié)合mysql的主從復(fù)制,可以提升數(shù)據(jù)庫(kù)的并發(fā)負(fù)載能力。但其穩(wěn)定性較差,不建議使用,如果公司可以對(duì)lua腳本的讀寫(xiě)分離重新定制開(kāi)發(fā),倒可以嘗試,從途牛的招聘來(lái)看,途牛可能用的這一套,僅是推測(cè)。
附上簡(jiǎn)要原理圖:
下面描述一下實(shí)驗(yàn)環(huán)境:
mysql-proxy:192.168.1.104
mysql1:192.168.1.104(master -- w)
mysql2:192.168.1.102(slave -- r)
mysql3:192.168.1.100(slave -- r)
為能看到讀寫(xiě)分離的效果,我這里就不配置數(shù)據(jù)庫(kù)之間的主從關(guān)系,僅做mysql-proxy的配置[這里采用編譯安裝]
1.編譯安裝需要安裝如下幾個(gè)軟件:[以下幾個(gè)軟件我都解壓放在/tmp下]
glib,libenent,lua,pkg-config,mysql-proxy
軟件共享下載地址:http://www.kuaipan.cn/file/id_119710994921422889.htm
2.安裝pkg-config-0.23.tar.gz
3.安裝libevent-1.4.11-stable.tar.gz
4.安裝glib-2.20.0.tar.bz2
5.安裝lua-5.1.4.tar.gz
6.安裝mysql,我這里的mysql使用rpm安裝mysql-devel[我這里已經(jīng)安裝好了,這一步我省略了]
7.安裝mysql-proxy-0.8.3.tar.gz
8.啟動(dòng)數(shù)據(jù)庫(kù)[記的關(guān)閉防火墻,不然會(huì)有問(wèn)題,也可以添加防火墻策略]
9.登陸測(cè)試
10.配置啟動(dòng)腳本和啟動(dòng)配置文件
聯(lián)系客服