標籤:
一.amoeba介紹
網址:http://docs.hexnova.com/amoeba/
二.安裝java se1.5
三.安裝amoeba2.2.0
1.:http://sourceforge.net/projects/amoeba/files/,下載amoeba-mysql-binary-2.2.0.tar.gz
2.解壓後直接放入/usr/local/amoeba(該路徑隨意)
四.配置amoeba
*注意以下配置中,請記得將xml的注釋去掉,密碼項預設是注釋的
1.amoeba配置
#vi /usr/local/amoeba/conf/amoeba.xml
配置連接埠,服務ip地址,登入使用者名稱和密碼
<property name="port">8066</property>
<property name="ipAddress">192.168.1.84</property>
<property name="user">testuser</property>
<property name="password">password</property>
2.測試
#mysql -u testuser -p -h 192.168.1.84 -P 8066
3.配置dbServers.xml
#vi /usr/local/amoeba/conf/dbServers.xml
設定資料庫,帳號和密碼(該帳號和密碼是mysql的)
<property name="schema">dba_db</property>
<property name="user">test</property>
<property name="password">123456</property>
4.修改dbServers.xml,配置mysql伺服器的ip地址和別名:
<dbServer name="master" parent="abstractServer">
<factoryConfig>
<!-- mysql ip -->
<property name="ipAddress">192.168.1.126</property>
</factoryConfig>
</dbServer>
<dbServer name="slave" parent="abstractServer">
<factoryConfig>
<!-- mysql ip -->
<property name="ipAddress">127.0.0.1</property>
<property name="user">mytest</property>
<property name="password">pwd</property>
</factoryConfig>
</dbServer>
因為slave的帳號和密碼不同,所以在slave節點下再次設定帳號密碼
5.修改dbServers.xml,設定ROUNDROBIN(輪詢策略)
<dbServer name="virtualSlave" virtual="true">
<poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
<!-- 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">slave,slave,master,master</property>
</poolConfig>
</dbServer>
6.修改amoeba.xml,設定讀寫分離
在<queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter">段設定
<property name="defaultPool">master</property>
<property name="writePool">master</property>
<property name="readPool">virtualSlave</property>
<property name="needParse">true</property>
7.重啟amoeba
#/usr/local/amoeba/bin/amoeba start
8.測試
#mysql -u testuser -p -h 192.168.1.84 -P 8066
五.最佳化
1.修改log4j.xml 取消記錄檔產生(太大了,磁碟很容易滿),<param name="file" value="amoeba.home/logs/project.log"/>改成:<paramname="file"value="<![CDATA[{amoeba.home}/logs/project.log>/dev/null]]>"/>
2.效能最佳化,開啟bin/amoeba,DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss128k"改成:DEFAULT_OPTS="-server -Xms512m -Xmx512m -Xmn100m -Xss1204k"
3.loadbalance元素設定了loadbalance策略的選項,這裡選擇第一個“ROUNDROBIN”輪詢策略,該配置提供負載平衡、failOver、故障恢複功能。poolNames定義了其中的資料庫節點配置(當然也可以是虛擬節點)。此外對於輪詢策略,poolNames還定義了其輪詢規則,比如設定成“Slave1,Slave1,Slave2”那麼Amoeba將會以兩次Slave1,一次Slave2的順序迴圈對這些資料庫節點轉寄請求。
六.效能測試
#/usr/local/amoeba/bin/benchmark -P 8066 -c 1000 -f ../benchmark/query.xml -h 192.168.1.84 -n 100000 -u testuser -p password
query.xml如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
<entry key="class">com.meidusa.amoeba.mysql.net.packet.QueryCommandPacket</entry>
<entry key="command">3</entry>
<entry key="query"><![CDATA[
SELECT * FROM dba_db.test WHERE id=191
]]>
</entry>
</properties>
參考文章:http://www.cnblogs.com/lhj588/archive/2012/11/19/2777897.html
centos安裝配置amoeba以及測試