Amoeba for MySQL 測試

參考:http://www.jianzhaoyang.com/database/amoeba_for_mysql
開發者博客:http://amoeba.meidusa.com/wordpress/
基於amoeba實現的MySQL數據庫讀寫分離,負載均衡,可擴展性架構:
amoeba是一個基於j2se開發的數據庫連接池,可對數據庫水平切分,垂直切分,或者兩者結合。

amoeba for mysql 測試 - 數據庫服器 - IT運維專家網 - Powered by SupeSite - bailkai - good luck guy
amoeba.JPG






Amoeba for MySQL環境:





軟件環境:
OS:RedHat 5.2 (32bit)
MYSQL:MySQL-5.0.77
Amoeba:amoeba-mysql-1.0.0-BETA
JDK:
jdk-6u14-linux-i586

主要測試功能:
1,
讀寫分離
2,
負載均衡

Amoeba主配置文件:
amoeba.xml
主配置文件,配置所有數據源及Amoeba自身的參數。
rule.xml
配置所有Query路由規則的信息:
functionMap.xml
配置用於解析Query中的函數所對應的Java實現類
nullFunctionMap.xml
配置路由規則中需要使用到的特定函數的實現類。

整體配置方案:
配置MySQL 複製。在amoeba server上安裝JDK
這裏不做詳細說明
配置JAVA環境變量

CODE:

[root@localhost ~]# cat .bashrc
JAVA_HOME=/usr/java/jdk1.6.0_14
CLASSPATH=.{JAVA_HOME}/lib/dt.jar{JAVA_HOME}/lib/tools.jar{JAVA_HOME}/lib{JAVA_HOME}/jre/lib
PATH=$PATH{JAVA_HOME}/bin{JAVA_HOME}/jre/bin
export JAVA_HOME CLASSPATH PATH
amoeba.xml文件配置:

CODE:

<?xml version="1.0"encoding="gbk"?>

<!DOCTYPE amoeba:configurationSYSTEM "amoeba.dtd">
<amoeba:configurationxmlns:amoeba="http://amoeba.meidusa.com/">


<server>

<propertyname="port">3306</property>

<propertyname="ipAddress">192.168.0.230</property>

<propertyname="readThreadPoolSize">20</property>

<propertyname="clientSideThreadPoolSize">30</property>

<propertyname="serverSideThreadPoolSize">30</property>

<propertyname="netBufferSize">128</property>

<propertyname="tcpNoDelay">true</property>

<propertyname="user">root</property>

<propertyname="password">root</property>

</server>


<connectionManagerList>

<connectionManagername="defaultManager" />

</connectionManagerList>



<dbServerList>

<dbServername="master">

<factoryConfigclass="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">

<propertyname="manager">defaultManager</property>

<propertyname="port">3306</property>

<propertyname="ipAddress">192.168.0.240</property>

<propertyname="schema">duote</property>

<propertyname="user">root</property>

<propertyname="password">root</property>

</factoryConfig>

<poolConfigclass="com.meidusa.amoeba.net.poolable.PoolableObjectPool">

<propertyname="maxActive">200</property>

<propertyname="maxIdle">200</property>

<propertyname="minIdle">10</property>

<propertyname="minEvictableIdleTimeMillis">600000</property>


<propertyname="timeBetweenEvictionRunsMillis">600000</property>

<propertyname="testOnBorrow">true</property>

<propertyname="testWhileIdle">true</property>

</poolConfig>

</dbServer>


<dbServername="slave1">


<factoryConfigclass="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">

<propertyname="manager">defaultManager</property>

<propertyname="port">3306</property>


<propertyname="ipAddress">192.168.0.241</property>

<propertyname="schema">duote</property>

<propertyname="user">root</property>

<propertyname="password">root</property>

</factoryConfig>

<poolConfigclass="com.meidusa.amoeba.net.poolable.PoolableObjectPool">

<propertyname="maxActive">200</property>


<propertyname="maxIdle">200</property>

<propertyname="minIdle">10</property>

<propertyname="minEvictableIdleTimeMillis">600000</property>


<propertyname="timeBetweenEvictionRunsMillis">600000</property>

<propertyname="testOnBorrow">true</property>

<propertyname="testWhileIdle">true</property>

</poolConfig>

</dbServer>

<dbServername="multiPool" virtual="true">

<poolConfigclass="com.meidusa.amoeba.server.MultipleServerPool">

<propertyname="loadbalance">1</property>

<propertyname="poolNames">slave1</property>

</poolConfig>

</dbServer>

</dbServerList>



<dbServername="slave2">

<factoryConfigclass="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">

<propertyname="manager">defaultManager</property>

<propertyname="port">3306</property>

<propertyname="ipAddress">192.168.0.242</property>

<propertyname="schema">duote</property>


<propertyname="user">root</property>

<propertyname="password">root</property>

</factoryConfig>

<poolConfigclass="com.meidusa.amoeba.net.poolable.PoolableObjectPool">

<propertyname="maxActive">200</property>

<propertyname="maxIdle">200</property>

<propertyname="minIdle">10</property>

<propertyname="minEvictableIdleTimeMillis">600000</property>

<propertyname="timeBetweenEvictionRunsMillis">600000</property>

<propertyname="testOnBorrow">true</property>


<propertyname="testWhileIdle">true</property>

</poolConfig>

</dbServer>

<!—負載均衡配置
-->

<dbServer virtual="true">

<poolConfigclass="com.meidusa.amoeba.server.MultipleServerPool">

<propertyname="loadbalance">1</property>

<propertyname="poolNames">slave1,slave2</property>

</poolConfig>

</dbServer>

</dbServerList>


<queryRouterclass="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter">

<propertyname="ruleConfig">${amoeba.home}/conf/rule.xml</property>

<propertyname="functionConfig">${amoeba.home}/conf/functionMap.xml</property>

<propertyname="ruleFunctionConfig">${amoeba.home}/conf/ruleFunctionMap.xml</property>

<propertyname="LRUMapSize">1500</property>

<!—讀寫分離配置
-->

<propertyname="defaultPool">master</property>

<propertyname="writePool">master</property>

<property >multiPool</property>

<propertyname="needParse">true</property>

</queryRouter>
</amoeba:configuration>

發佈了55 篇原創文章 · 獲贊 0 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章