1. 什么是中間件
傳統(tǒng)的架構(gòu)模式就是 應(yīng)用連接數(shù)據(jù)庫(kù)直接對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)妓柜,這種架構(gòu)特點(diǎn)就是簡(jiǎn)單方便逮走。
但是隨著目前數(shù)據(jù)量不斷的增大我們就遇到了問(wèn)題:
單個(gè)表數(shù)據(jù)量太大
單個(gè)庫(kù)數(shù)據(jù)量太大
單臺(tái)數(shù)據(jù)量服務(wù)器壓力很大
讀寫速度遇到瓶頸
? ? ? ?當(dāng)面臨以上問(wèn)題時(shí)藤为,我們會(huì)想到的第一種解決方式就是 向上擴(kuò)展(scale up) 簡(jiǎn)單來(lái)說(shuō)就是不斷增加硬件性能柱衔。這種方式只能暫時(shí)解決問(wèn)題,當(dāng)業(yè)務(wù)量不斷增長(zhǎng)時(shí)還是解決不了問(wèn)題缕探。特別是淘寶魂莫,facebook,youtube這種業(yè)務(wù)成線性爹耗,甚至指數(shù)級(jí)上升的情況
? ? ? ? 此時(shí)我們不得不依賴于第二種方式: 水平擴(kuò)展 豁鲤。 直接增加機(jī)器,把數(shù)據(jù)庫(kù)放到不同服務(wù)器上鲸沮,在應(yīng)用到數(shù)據(jù)庫(kù)之間加一個(gè)proxy進(jìn)行路由琳骡,這樣就可以解決上面的問(wèn)題了。
2. 中間件與讀寫分離
? ? ? ? 很多人都會(huì)把中間件認(rèn)為是讀寫分離讼溺,其實(shí)讀寫分離只是中間件可以提供的一種功能楣号,最主要的功能還是在于他可以 分庫(kù)分表;
? ? ? ? 而在讀寫分離結(jié)構(gòu)中并沒有這些分庫(kù)分表規(guī)則,他只能在眾多讀節(jié)點(diǎn)中l(wèi)oad balance隨機(jī)進(jìn)行分發(fā)炫狱,它要求各個(gè)節(jié)點(diǎn)都要存放一份完整的數(shù)據(jù)藻懒。
3. Atlas主要功能:
讀寫分離
從庫(kù)負(fù)載均衡
自動(dòng)分表
IP過(guò)濾
SQL語(yǔ)句黑白名單
DBA可平滑上下線DB
自動(dòng)摘除宕機(jī)的DB
3. 安裝、配置:
rpm –i Atlas-2.2.1.el6.x86_64.rpm
vim /usr/local/mysql-proxy/conf/test.cnf
cd? /usr/local/mysql-proxy/bin
./mysql-proxyd test start
ps -ef | grep mysql-proxy
mysql -h127.0.0.1 -P1234 -u用戶名 -p密碼
show variables like "server_id";? (測(cè)試讀寫是否成功)
后續(xù)內(nèi)容下次更新....