久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Amoeba中怎么實現MySQL負載均衡和故障轉移

153次閱讀
沒有評論

共計 3875 個字符,預計需要花費 10 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關 Amoeba 中怎么實現 MySQL 負載均衡和故障轉移,文章內容質量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Amoeba(變形蟲,讀:阿米巴) 項目,專注分布式數據庫 proxy 開發。座落與 Client、DB Server(s) 之間。對客戶端透明。具有負載均衡、高可用性、sql 過濾、讀寫分離、可路由相關的 query 到目標數據庫、可并發請求多臺數據庫合并結果。
主要解決:
? 降低數據切分帶來的復雜多數據庫結構
? 提供切分規則并降低數據切分規則給應用帶來的影響
? 降低 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 部分配置如下

               

1500
               

master1

               

master1
               

master1

               

true

直接訪問:
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 自身的負載均衡和故障轉換。

關于 Amoeba 中怎么實現 MySQL 負載均衡和故障轉移就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計3875字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 惠东县| 福海县| 和林格尔县| 唐河县| 宜兰县| 米泉市| 吉木乃县| 仁寿县| 奉节县| 嘉兴市| 吐鲁番市| 田阳县| 临安市| 汉阴县| 吉安县| 高台县| 宁化县| 都江堰市| 东源县| 大姚县| 伊春市| 金乡县| 迁安市| 秭归县| 丹巴县| 河津市| 唐海县| 韩城市| 仁怀市| 永顺县| 茌平县| 铁岭县| 昭平县| 宜春市| 镇赉县| 西藏| 安岳县| 永新县| 舟曲县| 绩溪县| 个旧市|