Amoeba實現MySQL的負載均衡、故障轉移
主要解決:
• 降低資料切分帶來的複雜多資料庫結構
• 提供切分規則並降低資料切分規則給應用帶來的影響
• 降低db 與客戶端的連線數[@more@]
1.3 安裝Amoeba
Amoeba 框架是基於JDK1.5開發的,採用了JDK1.5的特性。支援Mysql 協議版本10(mysql 4.1以後的版本),因此,使用Amoeba需要安裝JDK1.5或以上版本,MySQL需要4.1以上版本。
系統及環境版本:
Linux版本:Linux localhost.localdomain 2.6.9-67.ELsmp #1 SMP Fri Nov 16 12:48:03 EST 2007 i686 i686 i386 GNU/Linux
JDK版本:jdk-6u16-linux-i586-rpm.bin
1.到sun公司網站下載包jdk1.6.0_16-linux-i586.rpm
2.安裝:rpm -ivh jdk1.6.0_16-linux-i586.rpm
3.安裝後之後需要配置環境變數。
vi /etc/profile
JAVA_HOME=/usr/java/jdk1.6.0_16
JAVA_BIN=/usr/java/jdk1.6.0.16/bin
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
使之生效
source /etc/profile
注意,需要把jdk名字修改成您所下載的JDK當前版本。
下一步是必須的,不然它總是呼叫FC6自帶的jdk1.4
建立連結
#cd /usr/bin
#ln -s -f /usr/local/jdk1.5.0_05/jre/bin/java
#ln -s -f /usr/local/jdk1.5.0_05/bin/javac
檢視java版本:java -version
vi Hello.java
再編一個java小程式:
public class Hello{
public static void main(String[] args){
System.out.println("hello"); }
}
>javac Hello.java
>java Hello
出現 Hello即表明成功
安裝好JDK後,再執行amoeba for mysql。
1.到amoeba開發者部落格下載最新版本amoeba-mysql-1.0.2-BETA
2.配置amoeba.xml和rule.xml檔案,具體參考相關資料
3.切換到amoeba-mysql-1.0.2-BETA目錄,輸入
>./bin/amoeba
即可(後臺執行)
1.4 配置Amoeba
Amoeba的配置檔案是XML格式的,使用起來很方便。主要有4個檔案:
Amoeba.xml是主配置檔案,配置所有資料來源及Amoeba自身的引數。
rule.xml,配置所有Query路由規則的資訊:
functionMap.xml,配置用於解析Query中的函式所對應的Java實現類。
nullFunctionMap.xml,配置路由規則中需要使用到的特定函式的實現類。
詳細的配置說明請檢視官方文件。
1.5 測試Amoeba對效能的影響
Amoeba需要分析MySQL協議資料包,因此在效能上必定會有折損。以下針對Amoeba的效能折損情況做個測試,測試方法是對單機直接訪問與透過Amoeba對單機訪問做個對比。
Amoeba只配置一臺server,如Router部分配置如下
直接訪問:
sysbench --num-threads=20 --max-requests=10000
--test=oltp --oltp-read-only=on --db-ps-mode=disable --oltp-skip-trx
--mysql-table-engine=innodb --oltp-table-size=100000
--mysql-host=192.168.100.2 -mysql-port=3306 --mysql-db=configdb run
OLTP test statistics:
queries performed:
read: 140000
write: 0
other: 0
total: 140000
transactions: 10000 (751.32 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 140000 (10518.52 per sec.)
other operations: 0 (0.00 per sec.)
Test execution summary:
total time: 13.3099s
total number of events: 10000
total time taken by event execution: 265.8874
per-request statistics:
min: 4.61ms
avg: 26.59ms
max: 80.70ms
approx. 95 percentile: 45.12ms
Threads fairness:
events (avg/stddev): 500.0000/7.78
execution time (avg/stddev): 13.2944/0.01
sysbench --num-threads=20 --max-requests=10000
--test=oltp --oltp-read-only=on --db-ps-mode=disable --oltp-skip-trx
--mysql-table-engine=innodb --oltp-table-size=100000
--mysql-host=192.168.100.2 -mysql-port=8066 --mysql-db=configdb run
OLTP test statistics:
queries performed:
read: 140000
write: 0
other: 0
total: 140000
transactions: 10000 (303.17 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 140000 (4244.42 per sec.)
other operations: 0 (0.00 per sec.)
Test execution summary:
total time: 32.9845s
total number of events: 10000
total time taken by event execution: 658.9933
per-request statistics:
min: 6.59ms
avg: 65.90ms
max: 10229.09ms
approx. 95 percentile: 109.86ms
Threads fairness:
events (avg/stddev): 500.0000/66.18
execution time (avg/stddev): 32.9497/0.01
從測試結果來看,Amoeba對效能的折損60%左右。如果再加上rule和functionMap的配置,我相信效能折損會更高。不過Amoeba對機器的效能要求很高,如果把Amoeba獨立部署在一臺效能較強的機器上,相信會有很大提升,另外,我們也可以同時使用多臺Amoeba,用LVS來實現Amoeba自身的負載均衡和故障轉換。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/124805/viewspace-1040159/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- HaProxy 實現 MySQL 負載均衡MySql負載
- Mycat實現mysql的負載均衡讀寫分離MySql負載
- Ribbon實現負載均衡負載
- GRPC 負載均衡實現RPC負載
- nginx實現負載均衡Nginx負載
- keepalived+haproxy實現mysql負載均衡高可用MySql負載
- Nginx實現簡單的負載均衡Nginx負載
- mysql負載均衡搭建(haproxy)MySql負載
- nginx+tomcat實現負載均衡NginxTomcat負載
- dubbo(三):負載均衡實現解析負載
- 使用YARP來實現負載均衡負載
- Python實現簡單負載均衡Python負載
- Linux下玩轉nginx系列(五)---nginx實現負載均衡LinuxNginx負載
- 技術|如何為MySQL MGR實現簡單的負載均衡代理?MySql負載
- SpringCloud微服務中使用RestTemplate+Ribbon實現負載均衡(實現方法+實現原理+替換負載均衡策略)SpringGCCloud微服務REST負載
- Haproxy搭建 Web 群集實現負載均衡Web負載
- 在Linux中,如何實現負載均衡?Linux負載
- Nginx如何實現四層負載均衡?Nginx負載
- Keepalived實現Nginx負載均衡高可用Nginx負載
- Docker Compose+nginx實現負載均衡DockerNginx負載
- orleans叢集及負載均衡實現負載
- 超實用:實現負載均衡技術的方式負載
- SAP 應用服務負載均衡的實現負載
- 六種實現負載均衡技術的方式負載
- Nginx 高階篇(三)負載均衡的實現Nginx負載
- 【Nginx】如何使用Nginx實現MySQL資料庫的負載均衡?看完我懂了!!NginxMySql資料庫負載
- jmeter壓力測試實現負載均衡JMeter負載
- 伺服器負載均衡原理及實現伺服器負載
- nginx實現兩臺服務負載均衡Nginx負載
- nginx讓多個tomcat實現負載均衡NginxTomcat負載
- RHEL 7配置HAProxy實現Web負載均衡Web負載
- SpringCloud Fegin結合Ribbon實現負載均衡SpringGCCloud負載
- LVS+Keepalived 實現高可用負載均衡負載
- Nginx如何實現負載均衡釋出策略?Nginx負載
- haporxy+keepalived實現負載均衡+高可用負載
- DockerCompose編排Nginx+Mysql並實現Nginx配置Mysql(TCP協議)負載均衡DockerNginxMySqlTCP協議負載
- LVS和Nginx實現負載均衡功能的比較Nginx負載
- Nginx 動靜分離與負載均衡的實現Nginx負載
- 智慧雲解析如何實現網站的負載均衡?網站負載