Amoeba 高级特性

本节讲述如何使用Amoeba高级特性。负载均衡、数据切分、如何编写数据切分规则等。

  1. 负载均衡特性
    Amoeba 不仅仅提供普通的连接池功能,而还提供了虚拟的连接池。
    Virtual DbServer Configuration

  2. Virtual dbserver 参数配置说明:
    配置项 是否必选 默认值 说明
    className   默认值:com.meidusa.amoeba.server.MultipleServerPool
    loadbalance 1 负载均衡参数 1=ROUNDROBIN(轮询方式) , 2=WEIGHTBASED(根据当前活动连接数。活动连接少的优先)
    poolNames 以逗号分割的pool name list(比如:server1,server2)
    virtual false 如果该值为true,则className 默认值为com.meidusa.amoeba.server.MultipleServerPool
  3. 开启QueryRouter 查询功能,配置规则文件
    queryRouter Tag Configuration
    配置项 是否必选 默认值 说明
    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