mysql amoeba_MySQL基于Amoeba实现读写分离
讀寫分離應用分析:
在企業用戶中,在大量的數據請求下,單臺數據庫將無法承擔所有讀寫操作。解決方法:
配置多臺數據庫服務器以實現主從復制+讀寫分離。
1、基于程序代碼內部實現
在代碼中根據select、 insert 進行路由分類,這種方法目前生產環境中應用最廣泛。優點是性能較好,因為在程序代碼中實現,不需要增加額外的設備作為硬件開支。缺點是需要開發人員能來實現,運維人員無從下手。
2、基于中間代理層實現
代理一般位于客戶端和服務器之間,代理服務器接到客戶端請求后通過判斷后轉發到后端數據庫。
常見的代理服務器:
MySQL-Proxy
Amoeba
實驗環境:
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
前提是主從服務器支持主從復制
配置amoeba服務器:
1.安裝amoeba軟件
準備好jdk-6u14-linux-x64.bin文件
2.給與該文件執行權限
chmod +x jdk-6u14-linux-x64.bin
3.執行該文件
./jdk-6u14-linux-x64.bin
執行后會進入閱讀模式,一直按回車,提示是否安裝是輸入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
事先準備amoeba包
amoeba-mysql-binary-2.2.0.tar.gz
11創建文件目錄
mkdir /usr/local/amoeba
解包:
tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
12.給與755的權限
chmod -R 755 /usr/local/amoeba/
13.執行amoeba
/usr/local/amoeba/bin/amoeba
#出現amoeba start|stop證明配置沒有問題
在MySQL數據庫服務器上對amoeba授權:
1.在每一臺服務器上登錄數據庫執行:
grant all on *.* to 'admin'@'192.168.200.%'identified by'123123';
2.刷新授權表:
flush privileges;
在amoeba服務器上編輯amoeba.xml配置文件,設置讀寫分離:
cd /usr/local/amoeba/conf/
cp amoeba.xml amoeba.xml.origin
vim amoeba.xml
設置一個用戶,后面的客戶端訪問時使用
設置登錄密碼
將注釋去掉,設置默認的服務器池||寫服務器池||讀服務器池
在amoeba服務器上編輯配置文件,設置登錄MySQL服務器的用戶及密碼、MySQL服務器節點的IP地址、負載均衡的算法:
cd /usr/local/amoeba/conf/
cp dbServers.xml dbServers.xml.origin
vim dbServers.xml
默認端口為3306,設置訪問MySQL數據庫的所用的用戶名和密碼
依次為:主MySQL服務器的名稱和IP地址
從MySQL服務器1的名稱和IP地址
從MySQL服務器2的名稱和IP地址
與主從MySQL服務器對應
設置readpool
負載均衡算法值為1,輪詢算法
前面定義的服務器節點名
測試環境:
啟動amoeba
1.檢查配置是否出錯
/usr/local/amoeba/bin/amoeba
amoeba start|stop表示沒出錯
2.起服務
/usr/local/amoeba/bin/amoeba &
3.檢查端口8066
netstat -lnpt|grep java
總結
以上是生活随笔為你收集整理的mysql amoeba_MySQL基于Amoeba实现读写分离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python counter_如何获得按
- 下一篇: 小葵花妈妈课堂开课了:《Runnable