[root@node ~]
[root@node conf]
?xml version=
"1.0"
encoding=
"gbk"
?>
<!DOCTYPE amoeba:configuration SYSTEM
"amoeba.dtd"
>
<amoeba:configuration xmlns:amoeba=
"http://amoeba.meidusa.com/"
>
<proxy>
<!-- service class must implements com.meidusa.amoeba.service.Service -->
<service name=
"Amoeba for Mysql"
class=
"com.meidusa.amoeba.net.ServerableConnectionManager"
>
<!-- port -->
<property name=
"port"
>3306<
/property
>
<!-- bind ipAddress -->
<!--
<property name=
"ipAddress"
>127.0.0.1<
/property
>
-->
<property name=
"ipAddress"
>0.0.0.0<
/property
>
<property name=
"manager"
>${clientConnectioneManager}<
/property
>
<property name=
"connectionFactory"
>
<bean class=
"com.meidusa.amoeba.mysql.net.MysqlClientConnectionFactory"
>
<property name=
"sendBufferSize"
>128<
/property
>
<property name=
"receiveBufferSize"
>64<
/property
>
<
/bean
>
<
/property
>
<property name=
"authenticator"
>
<bean class=
"com.meidusa.amoeba.mysql.server.MysqlClientAuthenticator"
>
<property name=
"user"
>root<
/property
>
<property name=
"password"
>mypass<
/property
>
<property name=
"filter"
>
<bean class=
"com.meidusa.amoeba.server.IPAccessController"
>
<property name=
"ipFile"
>${amoeba.home}
/conf/access_list
.conf<
/property
>
<
/bean
>
<
/property
>
<
/bean
>
<
/property
>
<
/service
>
<!-- server class must implements com.meidusa.amoeba.service.Service -->
<service name=
"Amoeba Monitor Server"
class=
"com.meidusa.amoeba.monitor.MonitorServer"
>
<!-- port -->
<!-- default value: random number
<property name=
"port"
>3306<
/property
>
-->
<!-- bind ipAddress -->
<property name=
"ipAddress"
>127.0.0.1<
/property
>
<property name=
"daemon"
>
true
<
/property
>
<property name=
"manager"
>${clientConnectioneManager}<
/property
>
<property name=
"connectionFactory"
>
<bean class=
"com.meidusa.amoeba.monitor.net.MonitorClientConnectionFactory"
><
/bean
>
<
/property
>
<
/service
>
<runtime class=
"com.meidusa.amoeba.mysql.context.MysqlRuntimeContext"
>
<!-- proxy server net IO Read thread size -->
<property name=
"readThreadPoolSize"
>20<
/property
>
<!-- proxy server client process thread size -->
<property name=
"clientSideThreadPoolSize"
>30<
/property
>
<!-- mysql server data packet process thread size -->
<property name=
"serverSideThreadPoolSize"
>30<
/property
>
<!-- per connection cache prepared statement size -->
<property name=
"statementCacheSize"
>500<
/property
>
<!-- query timeout( default: 60 second , TimeUnit:second) -->
<property name=
"queryTimeout"
>60<
/property
>
<
/runtime
>
<
/proxy
>
<!--
Each ConnectionManager will start as thread
manager responsible
for
the Connection IO
read
, Death Detection
-->
<connectionManagerList>
<connectionManager name=
"clientConnectioneManager"
class=
"com.meidusa.amoeba.net.MultiConnectionManagerWrapper"
>
<property name=
"subManagerClassName"
>com.meidusa.amoeba.net.ConnectionManager<
/property
>
<!--
default value is avaliable Processors
<property name=
"processors"
>5<
/property
>
-->
<
/connectionManager
>
<connectionManager name=
"defaultManager"
class=
"com.meidusa.amoeba.net.MultiConnectionManagerWrapper"
>
<property name=
"subManagerClassName"
>com.meidusa.amoeba.net.AuthingableConnectionManager<
/property
>
<!--
default value is avaliable Processors
<property name=
"processors"
>5<
/property
>
-->
<
/connectionManager
>
<
/connectionManagerList
>
<!-- default using
file
loader -->
<dbServerLoader class=
"com.meidusa.amoeba.context.DBServerConfigFileLoader"
>
<property name=
"configFile"
>${amoeba.home}
/conf/dbServers
.xml<
/property
>
<
/dbServerLoader
>
<queryRouter class=
"com.meidusa.amoeba.mysql.parser.MysqlQueryRouter"
>
<property name=
"ruleLoader"
>
<bean class=
"com.meidusa.amoeba.route.TableRuleFileLoader"
>
<property name=
"ruleFile"
>${amoeba.home}
/conf/rule
.xml<
/property
>
<property name=
"functionFile"
>${amoeba.home}
/conf/ruleFunctionMap
.xml<
/property
>
<
/bean
>
<
/property
>
<property name=
"sqlFunctionFile"
>${amoeba.home}
/conf/functionMap
.xml<
/property
>
<property name=
"LRUMapSize"
>1500<
/property
>
<property name=
"defaultPool"
>node1<
/property
>
<property name=
"writePool"
>node1<
/property
>
<property name=
"readPool"
>node2<
/property
>
<property name=
"needParse"
>
true
<
/property
>
<
/queryRouter
>
<
/amoeba
:configuration>
[root@node conf]
<?xml version=
"1.0"
encoding=
"gbk"
?>
<!DOCTYPE amoeba:dbServers SYSTEM
"dbserver.dtd"
>
<amoeba:dbServers xmlns:amoeba=
"http://amoeba.meidusa.com/"
>
<!--
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 class=
"com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory"
>
<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"
>redhat<
/property
>
-->
<
/factoryConfig
>
<poolConfig class=
"com.meidusa.amoeba.net.poolable.PoolableObjectPool"
>
<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=
"testOnReturn"
>
true
<
/property
>
<property name=
"testWhileIdle"
>
true
<
/property
>
<
/poolConfig
>
<
/dbServer
>
<dbServer name=
"node1"
parent=
"abstractServer"
>
<factoryConfig>
<!-- mysql ip -->
<property name=
"ipAddress"
>192.168.18.1<
/property
>
<
/factoryConfig
>
<
/dbServer
>
<factoryConfig>
<!-- mysql ip -->
<property name=
"ipAddress"
>192.168.18.2<
/property
>
<
/factoryConfig
>
<
/dbServer
>
<dbServer name=
"multiPool"
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"
>node1,node2<
/property
>
<
/poolConfig
>
<
/dbServer
>
<
/amoeba
:dbServers>