mysql amoeba_MySQL基于Amoeba实现读写分离
讀寫分離應(yīng)用分析:
在企業(yè)用戶中,在大量的數(shù)據(jù)請求下,單臺數(shù)據(jù)庫將無法承擔(dān)所有讀寫操作。解決方法:
配置多臺數(shù)據(jù)庫服務(wù)器以實(shí)現(xiàn)主從復(fù)制+讀寫分離。
1、基于程序代碼內(nèi)部實(shí)現(xiàn)
在代碼中根據(jù)select、 insert 進(jìn)行路由分類,這種方法目前生產(chǎn)環(huán)境中應(yīng)用最廣泛。優(yōu)點(diǎn)是性能較好,因?yàn)樵诔绦虼a中實(shí)現(xiàn),不需要增加額外的設(shè)備作為硬件開支。缺點(diǎn)是需要開發(fā)人員能來實(shí)現(xiàn),運(yùn)維人員無從下手。
2、基于中間代理層實(shí)現(xiàn)
代理一般位于客戶端和服務(wù)器之間,代理服務(wù)器接到客戶端請求后通過判斷后轉(zhuǎn)發(fā)到后端數(shù)據(jù)庫。
常見的代理服務(wù)器:
MySQL-Proxy
Amoeba
實(shí)驗(yàn)環(huán)境:
amoeba: 192.168.200.114
master:192.168.200.111
slave1:192.168.200.112
slave2:192.168.200.113
client:192.168.200.123
前提是主從服務(wù)器支持主從復(fù)制
配置amoeba服務(wù)器:
1.安裝amoeba軟件
準(zhǔn)備好jdk-6u14-linux-x64.bin文件
2.給與該文件執(zhí)行權(quán)限
chmod +x jdk-6u14-linux-x64.bin
3.執(zhí)行該文件
./jdk-6u14-linux-x64.bin
執(zhí)行后會進(jìn)入閱讀模式,一直按回車,提示是否安裝是輸入yes
4.將文件移動
mv jdk1.6.0_14/ /usr/local/jdk1.6
5.修改配置文件
vim /etc/profile
在最后末行添加以下信息:
export JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$HOME/bin
export AMOEBA_HOME=/usr/local/amoeba
export PATH=$PATH:$AMOEBA_HOME/bin
6.查看java版本信息(不建議安裝1.7以上的版本,推薦使用1.6及以下)
java -version
顯示1.7的版本
7.刪除java文件
rm -rf /usr/bin/java
8.重新加載文件信息
source /etc/profile
9.再次查看版本信息
java -version
10.安裝配置amoeba
事先準(zhǔn)備amoeba包
amoeba-mysql-binary-2.2.0.tar.gz
11創(chuàng)建文件目錄
mkdir /usr/local/amoeba
解包:
tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
12.給與755的權(quán)限
chmod -R 755 /usr/local/amoeba/
13.執(zhí)行amoeba
/usr/local/amoeba/bin/amoeba
#出現(xiàn)amoeba start|stop證明配置沒有問題
在MySQL數(shù)據(jù)庫服務(wù)器上對amoeba授權(quán):
1.在每一臺服務(wù)器上登錄數(shù)據(jù)庫執(zhí)行:
grant all on *.* to 'admin'@'192.168.200.%'identified by'123123';
2.刷新授權(quán)表:
flush privileges;
在amoeba服務(wù)器上編輯amoeba.xml配置文件,設(shè)置讀寫分離:
cd /usr/local/amoeba/conf/
cp amoeba.xml amoeba.xml.origin
vim amoeba.xml
設(shè)置一個用戶,后面的客戶端訪問時使用
設(shè)置登錄密碼
將注釋去掉,設(shè)置默認(rèn)的服務(wù)器池||寫服務(wù)器池||讀服務(wù)器池
在amoeba服務(wù)器上編輯配置文件,設(shè)置登錄MySQL服務(wù)器的用戶及密碼、MySQL服務(wù)器節(jié)點(diǎn)的IP地址、負(fù)載均衡的算法:
cd /usr/local/amoeba/conf/
cp dbServers.xml dbServers.xml.origin
vim dbServers.xml
默認(rèn)端口為3306,設(shè)置訪問MySQL數(shù)據(jù)庫的所用的用戶名和密碼
依次為:主MySQL服務(wù)器的名稱和IP地址
從MySQL服務(wù)器1的名稱和IP地址
從MySQL服務(wù)器2的名稱和IP地址
與主從MySQL服務(wù)器對應(yīng)
設(shè)置readpool
負(fù)載均衡算法值為1,輪詢算法
前面定義的服務(wù)器節(jié)點(diǎn)名
測試環(huán)境:
啟動amoeba
1.檢查配置是否出錯
/usr/local/amoeba/bin/amoeba
amoeba start|stop表示沒出錯
2.起服務(wù)
/usr/local/amoeba/bin/amoeba &
3.檢查端口8066
netstat -lnpt|grep java
總結(jié)
以上是生活随笔為你收集整理的mysql amoeba_MySQL基于Amoeba实现读写分离的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python counter_如何获得按
- 下一篇: 小葵花妈妈课堂开课了:《Runnable