共計(jì) 5701 個(gè)字符,預(yù)計(jì)需要花費(fèi) 15 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 Amoeba 新版本 MYSQL 讀寫分離如何配置,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
官方簡(jiǎn)介
Amoeba 的中文意思是變型蟲
主要解決:
bull; 降低 數(shù)據(jù)切分帶來(lái)的復(fù)雜多數(shù)據(jù)庫(kù)結(jié)構(gòu)
bull; 提供切分規(guī)則并降低 數(shù)據(jù)切分規(guī)則 給應(yīng)用帶來(lái)的影響
bull; 降低 db 與客戶端的連接數(shù)
bull; 讀寫分離
個(gè)人簡(jiǎn)單描述
可能你還沒(méi)明白 Amoebla 這鬼東西主要干麻的呢!比方說(shuō) PHP 環(huán)境眾所周知,PHP 沒(méi)有數(shù)據(jù)連接池,如果 PHP 環(huán)境下 MYSQL 訪問(wèn)量大時(shí)會(huì)蹦掉,除非配置 Cluster 集群,而 Amoeba 就是在 PHP 程序和 MYSQL 之間,充當(dāng)一個(gè)緩沖的作用。
準(zhǔn)備工作
Server:192.168.1.208 #Amoeba
Server:192.168.1.11 #NDBD1(主)
Server:1921.68.1.13 #NDBD2(從)
注:11 和 13 兩臺(tái)服務(wù)器上,事先請(qǐng)安裝好 MYSQL 單向步
另請(qǐng)安裝 MYSQL 版本必須 5.1 以上,因?yàn)樾掳娴?Amoeba2.10 對(duì) 5.1 以下版本不穩(wěn)定。
結(jié)構(gòu)圖
Step 1: 配置 Amoeba192.168.2.8 讀寫分離
1:解壓安裝包
[root@Management down]# mkdir /usr/local/amoeba
[root@Management down]# tar -zxf amoeba-mysql-binary-2.1.0-RC5.tar.gz -C /usr/local/amoeba/
2:進(jìn)入配置目錄,瀏覽文件
[root@Management down]# cd /usr/local/amoeba/
[root@Management amoeba]# ll
total 88
drwxr-xr-x 2 root root 4096 Jul 26 11:57 benchmark
drwxr-xr-x 2 root root 4096 Feb 28 09:25 bin
-rw-r–r– 1 root root 3983 May 18 13:43 changelogs.txt
drwxr-xr-x 2 root root 4096 Jul 26 11:57 conf
drwxr-xr-x 3 root root 4096 Jul 26 11:57 lib
-rw-r–r– 1 root root 34520 May 18 13:43 LICENSE.txt
-rw-r–r– 1 root root 2031 May 18 13:43 README.html
3:進(jìn)入主配置文件目錄
[root@Management amoeba]# cd conf/
[root@Management conf]# ls
access_list.conf amoeba.xml dbServers.xml functionMap.xml log4j.xml ruleFunctionMap.xml
amoeba.dtd dbserver.dtd function.dtd log4j.dtd rule.dtd rule.xml
在這里我主要介紹配置 amoeba.xml、 dbServers.xml、log4j.xml 三個(gè)主要的配置文件,其它文件沒(méi)有特殊需要默認(rèn)就可以了奪
4:vi amoeba.xml 修改主配置文件
4.1)把默認(rèn)端口 8066 改成 3306
property name= port 3066 /property
4.2)把默認(rèn)連接用戶名和密碼改成自己的
property name= user sky /property
property name= password 123456 /property
4.3)把默認(rèn)的客戶端線程數(shù),請(qǐng)求數(shù)及服務(wù)端回應(yīng)數(shù)改成 200,300,300
property name= readThreadPoolSize 200 /property
!– proxy server client process thread size —
property name= clientSideThreadPoolSize 300 /property
!– mysql server data packet process thread size —
property name= serverSideThreadPoolSize 300 /property
4.4)把默認(rèn)注釋掉的讀寫分離選項(xiàng),把注釋去掉并 readpool 修改成 server2
!–
—
property name= writePool server1 /property
property name= readPool server2 /property
5:vi dbServers.xml 增加 SEVER2 模塊,里面的連接用戶名密碼及地址都表示兩臺(tái) MYSQL 的物理機(jī)器,192.168.1.11 和 192.168.1.13 另 SERVER1 是寫,SERVER 是讀
需要手動(dòng)增加 SERVER2 代碼如下:
dbServer name= abstractServer abstractive= true
factoryConfig >
property name= manager ${defaultManager} /property
property name= sendBufferSize 64 /property
property name= receiveBufferSize 128 /property
!– mysql port —
property name= port 3306 /property
!– mysql schema —
property name= schema test /property
!– mysql user —
property name= user root /property
!– mysql password
—
property name= password 123456 /property
/factoryConfig
poolConfig >
property name= maxActive 500 /property
property name= maxIdle 500 /property
property name= minIdle 10 /property
property name= minEvictableIdleTimeMillis 600000 /property
property name= timeBetweenEvictionRunsMillis 600000 /property
property name= testOnBorrow true /property
property name= testWhileIdle true /property
/poolConfig
/dbServer
dbServer name= server1 parent= abstractServer
factoryConfig
!– mysql ip —
property name= ipAddress 192.168.2.11 /property
/factoryConfig
/dbServer
最終改變成如下:
?xml version= 1.0 encoding= gbk ?
!DOCTYPE amoeba:dbServers SYSTEM dbserver.dtd
amoeba:dbServers xmlns:amoeba=
!–
Each dbServer needs to be configured into a Pool,
If you need to configure multiple dbServer with load balancing that can be simplified by the following configuration:
add attribute with name virtual = true in dbServer, but the configuration does not allow the element with name factoryConfig
such as multiPool dbServer
—
dbServer name= abstractServer abstractive= true
factoryConfig >
property name= manager ${defaultManager} /property
property name= sendBufferSize 64 /property
property name= receiveBufferSize 128 /property
!– mysql port —
property name= port 3306 /property
!– mysql schema —
property name= schema test /property
!– mysql user —
property name= user root /property
!– mysql password
—
property name= password 123456 /property
/factoryConfig
poolConfig >
property name= maxActive 500 /property
property name= maxIdle 500 /property
property name= minIdle 10 /property
property name= minEvictableIdleTimeMillis 600000 /property
property name= timeBetweenEvictionRunsMillis 600000 /property
property name= testOnBorrow true /property
property name= testWhileIdle true /property
/poolConfig
/dbServer
dbServer name= server1 parent= abstractServer
factoryConfig
!– mysql ip —
property name= ipAddress 192.168.2.11 /property
/factoryConfig
/dbServer
!– ######################## 把如上的內(nèi)容復(fù)制到下面,來(lái)增加 SERVER2############################ —
dbServer name= abstractServer abstractive= true
factoryConfig >
property name= manager ${defaultManager} /property
property name= sendBufferSize 64 /property
property name= receiveBufferSize 128 /property
!– mysql port —
property name= port 3306 /property
!– mysql schema —
property name= schema test /property
!– mysql user —
property name= user root /property
property name= password 123456 /property
/factoryConfig
poolConfig >
property name= maxActive 500 /property
property name= maxIdle 500 /property
property name= minIdle 10 /property
property name= minEvictableIdleTimeMillis 600000 /property
property name= timeBetweenEvictionRunsMillis 600000 /property
property name= testOnBorrow true /property
property name= testWhileIdle true /property
/poolConfig
/dbServer
dbServer name= server2 parent= abstractServer
factoryConfig
!– mysql ip —
property name= ipAddress 192.168.2.13 /property
/factoryConfig
/dbServer
dbServer name= multiPool virtual= true
poolConfig >
!– Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA–
property name= loadbalance 1 /property
!– Separated by commas,such as: server1,server2,server1 —
property name= poolNames server1 /property
/poolConfig
/dbServer
/amoeba:dbServers
6:修改 log4j.xml 取消日志文件生成(太大了,磁盤很容易滿)
param name= file value= ${amoeba.home}/logs/project.log /
改成
param name= file value= ![CDATA[${amoeba.home}/logs/project.log /dev/null]] /
7:性能優(yōu)化,打開 bin/amoeba
DEFAULT_OPTS= -server -Xms256m -Xmx256m -Xss128k
改成
DEFAULT_OPTS= -server -Xms512m -Xmx512m -Xmn100m -Xss1204k
8:?jiǎn)?dòng) amoeba
nohup /usr/local/amoeba/bin/amoeba start 2 1 /dev/null
看完了這篇文章,相信你對(duì)“Amoeba 新版本 MYSQL 讀寫分離如何配置”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝各位的閱讀!