Amoeba For Mysql 是 Amoeba项目的子项目。要使用Amoeba For Mysql您必须确保您已符合所有先决条件:
先决条件:
- Java
SE 1.5或者以上 Amoeba 框架是基于JDK1.5开发的,采用了JDK1.5的特性。
- 支持Mysql协议版本10(mysql
4.1以后的版本)。
- 您的网络环境至少运行有一个mysql
4.1以上的服务
如何快速配置:
- 配置Server(以下是双核CPU配置,调整线程数可优化性能),配置说明:
配置项 |
是否必选 |
默认值 |
说明 |
port |
否 |
8066 |
Amoeba Server绑定的对外端口 |
ipAddress |
否 |
空 |
Amoeba绑定的IP |
user |
是 |
空 |
客户端连接到Amoeba的用户名 |
password |
否 |
空 |
客户端连接到Amoeba所用的密码 |
readThreadPoolSize |
否 |
16 |
负责读客户端、databa seserver 端网络数据包线程数 |
clientSideThreadPoolSize |
否 |
16 |
负责读执行客户端请求的线程数 |
serverSideThreadPoolSize |
否 |
16 |
负责处理服务端返回数据包的线程数 |
Server Tag Configuration
- 配置 ConnectionManager
需要至少配置一个ConnectionManager,每个ConnectionManager将作为一个线程启动,ConnectionManager负责管理所注册在自身的Conneciton、负责他们的空闲检测,死亡检测、IO
Event
connectionManagerList Tag Configuration
- 配置 dbServer ,需要至少配置一个dbServer,每个dbServer将是物理数据库Server的衍射
factoryConfig --目标物理数据库衍射配置情况:
配置项 |
是否必选 |
默认值 |
说明 |
manager |
是 |
空 |
表示该dbServer 将注册到指定的ConnectionManager |
port |
否 |
3306 |
目标数据库端口 |
ipAddress |
否 |
127.0.0.1 |
目标数据库IP |
schema |
否 |
空 |
连接初始化的Schema |
user |
是 |
空 |
用于登陆目标数据库的用户名 |
password |
否 |
空 |
用于登陆目标数据库的密码 |
className |
是 |
空 |
连接工厂实现类(com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory) |
poolConfig -- 连接池配置情况:
配置项 |
是否必选 |
默认值 |
说明 |
className |
否 |
|
连接池实现类。默认:com.meidusa.amoeba.net.poolable.PoolableObjectPool |
maxActive |
否 |
8 |
最大活动连接数,如果达到最大活动连接数,则会等待 |
maxIdle |
否 |
8 |
最大的空闲连接数,如果超过则将会关闭多余的空闲连接 |
minIdle |
否 |
0 |
最小的空闲连接,连接池将保持最小空闲连接,即使这些连接长久不用 |
testOnBorrow |
否 |
false |
当连接在使用前是否检查连接可用 |
testWhileIdle |
否 |
fale |
是否检测空闲连接,这个参数启动的时候下列2个参数才有效 |
minEvictableIdleTimeMillis |
否 |
30分钟 |
连接空闲多少时间将被驱逐(关闭)(time Unit:ms)
|
timeBetweenEvictionRunsMillis |
否 |
-1 |
用于驱逐空闲连接没间隔多少时间检查一次空闲连接(time Unit:ms) |
dbServer Tag Configuration
- QueryRouter 查询路由配置
配置项 |
是否必选 |
默认值 |
说明 |
className |
是 |
空 |
QueryRouter实现类,Amoeba For Mysql(com.meidusa.amoeba.mysql.parser.MysqlQueryRouter)。 |
functionConfig |
否 |
空 |
用于解析sql 函数的配置文件,如果不配置则将不解析包含函数sql或者解析的不完整。 |
ruleConfig |
否 |
空 |
数据切分规则配置文件,如果不配置则sql数据切分功能将不能用 |
needParse |
否 |
true |
是否对 sql进行parse,如果false 则将不能使用数据切分、读写分离等功能
|
defaultPool |
是 |
空 |
needParse=false、无法解析query、不满足切分规则的、writePool|readPool
== null情况。 所有sql 将在默认得dbServer上面执行。(必选) |
writePool |
否 |
空 |
启用needParse 功能,并且没有匹配到数据切分规则,则 update、insert、delete
语句将在这个pool中执行 |
readPool |
否 |
空 |
启用needParse 功能,并且没有匹配到数据切分规则,则 select
语句将在这个pool中执行 |
LRUMapSize |
否 |
1000 |
statment cache ,存放 sql 解析后得到的statment |
queryRouter Tag Configuration