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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值