Amoeba For Mysql

Amoeba For Mysql 是 Amoeba项目的子项目。要使用Amoeba For Mysql您必须确保您已符合所有先决条件:

先决条件:

  1. Java SE 1.5或者以上 Amoeba 框架是基于JDK1.5开发的,采用了JDK1.5的特性。
  2. 支持Mysql协议版本10(mysql 4.1以后的版本)。
  3. 您的网络环境至少运行有一个mysql 4.1以上的服务

如何快速配置:

  1. 配置Server(以下是双核CPU配置,调整线程数可优化性能),配置说明:
    配置项 是否必选 默认值 说明
    port 8066 Amoeba Server绑定的对外端口
    ipAddress Amoeba绑定的IP
    user 客户端连接到Amoeba的用户名
    password 客户端连接到Amoeba所用的密码
    readThreadPoolSize 16 负责读客户端、databa seserver 端网络数据包线程数
    clientSideThreadPoolSize 16 负责读执行客户端请求的线程数
    serverSideThreadPoolSize 16 负责处理服务端返回数据包的线程数
  2. Server Tag Configuration
  3. 配置 ConnectionManager
    需要至少配置一个ConnectionManager,每个ConnectionManager将作为一个线程启动,ConnectionManager负责管理所注册在自身的Conneciton、负责他们的空闲检测,死亡检测、IO Event
  4. connectionManagerList Tag Configuration
  5. 配置 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)
  6. dbServer Tag Configuration
  7. QueryRouter 查询路由配置
  8. 配置项 是否必选 默认值 说明
    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

/