Amoeba For Mysql

113 篇文章 1 订阅
3 篇文章 0 订阅

Amoeba For Mysql

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

先决条件:

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

如何快速配置:

  1. 配置Server(以下是双核CPU配置,调整线程数可优化性能),配置说明:
    配置项是否必选默认值说明
    port8066Amoeba Server绑定的对外端口
    ipAddressAmoeba绑定的IP
    user客户端连接到Amoeba的用户名
    password客户端连接到Amoeba所用的密码
    readThreadPoolSize16负责读客户端、databa seserver端网络数据包线程数
    clientSideThreadPoolSize16负责读执行客户端请求的线程数
    serverSideThreadPoolSize16负责处理服务端返回数据包的线程数
  2. Server Tag Configuration
    1. <server>  
    2.     <!-- proxy server绑定的端口 -->  
    3.     <property name="port">2066</property>  
    4.       
    5.     <!-- proxy server绑定的IP -->  
    6.     <property name="ipAddress">127.0.0.1</property>  
    7.       
    8.     <!-- proxy server net IO Read thread size -->  
    9.     <property name="readThreadPoolSize">100</property>  
    10.       
    11.     <!-- proxy server client process thread size -->  
    12.     <property name="clientSideThreadPoolSize">80</property>  
    13.       
    14.     <!-- mysql server data packet process thread size -->  
    15.     <property name="serverSideThreadPoolSize">100</property>  
    16.       
    17.     <!-- 对外验证的用户名 -->  
    18.     <property name="user">root</property>  
    19.       
    20.     <!-- 对外验证的密码 -->  
    21.     <property name="password">password</property>  
    22. </server>  
  3. 配置 ConnectionManager
    需要至少配置一个ConnectionManager,每个ConnectionManager将作为一个线程启动,ConnectionManager负责管理所注册在自身的Conneciton、负责他们的空闲检测,死亡检测、IOEvent
  4. connectionManagerList TagConfiguration
    1. <!--   
    2.         每个ConnectionManager都将作为一个线程启动。  
    3.         manager负责Connection IO读写/死亡检测  
    4.     -->  
    5.     <connectionManagerList>  
    6.         <connectionManager name="defaultManager">  
    7.             <className>com.meidusa.amoeba.net.AuthingableConnectionManager</className>  
    8.         </connectionManager>  
    9.     </connectionManagerList>  
  5. 配置 dbServer,需要至少配置一个dbServer,每个dbServer将是物理数据库Server的衍射

    factoryConfig --目标物理数据库衍射配置情况:

    配置项是否必选默认值说明
    manager表示该dbServer将注册到指定的ConnectionManager
    port3306目标数据库端口
    ipAddress127.0.0.1目标数据库IP
    schema连接初始化的Schema
    user用于登陆目标数据库的用户名
    password用于登陆目标数据库的密码
    className连接工厂实现类(com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory)

    poolConfig -- 连接池配置情况:

    配置项是否必选默认值说明
    className 连接池实现类。默认:com.meidusa.amoeba.net.poolable.PoolableObjectPool
    maxActive8最大活动连接数,如果达到最大活动连接数,则会等待
    maxIdle8最大的空闲连接数,如果超过则将会关闭多余的空闲连接
    minIdle0最小的空闲连接,连接池将保持最小空闲连接,即使这些连接长久不用
    testOnBorrowfalse当连接在使用前是否检查连接可用
    testWhileIdlefale是否检测空闲连接,这个参数启动的时候下列2个参数才有效
    minEvictableIdleTimeMillis30分钟连接空闲多少时间将被驱逐(关闭)(timeUnit:ms)
    timeBetweenEvictionRunsMillis-1用于驱逐空闲连接没间隔多少时间检查一次空闲连接(timeUnit:ms)
  6. dbServer Tag Configuration
    1. <dbServerList>  
    2.     <!--   
    3.         一台mysqlServer 需要配置一个pool,  
    4.         如果多台 平等的mysql需要进行loadBalance,   
    5.         平台已经提供一个具有负载均衡能力的objectPool:com.meidusa.amoeba.mysql.server.MultipleServerPool  
    6.         简单的配置是属性加上 virtual="true",该Pool 不允许配置factoryConfig 、poolConfig  
    7.           
    8.     -->  
    9.     <dbServer name="server1">  
    10.           
    11.         <!-- PoolableObjectFactory实现类 -->  
    12.         <factoryConfig>  
    13.             <className>com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory</className>  
    14.             <property name="manager">defaultManager</property>  
    15.               
    16.             <!-- 真实mysql数据库端口 -->  
    17.             <property name="port">3301</property>  
    18.               
    19.             <!-- 真实mysql数据库IP -->  
    20.             <property name="ipAddress">127.0.0.1</property>  
    21.               
    22.             <!-- 用于登陆mysql的用户名 -->  
    23.             <property name="user">test</property>  
    24.               
    25.             <!-- 用于登陆mysql的密码 -->  
    26.             <property name="password">test</property>  
    27.             <property name="schema">testSchema</property>  
    28.         </factoryConfig>  
    29.           
    30.         <!-- ObjectPool实现类 -->  
    31.         <poolConfig>  
    32.             <className>com.meidusa.amoeba.net.poolable.PoolableObjectPool</className>  
    33.             <property name="maxActive">200</property>  
    34.             <property name="maxIdle">200</property>  
    35.             <property name="minIdle">10</property>  
    36.             <property name="minEvictableIdleTimeMillis">600000</property>  
    37.             <property name="timeBetweenEvictionRunsMillis">600000</property>  
    38.             <property name="testOnBorrow">true</property>  
    39.             <property name="testWhileIdle">true</property>  
    40.         </poolConfig>  
    41.     </dbServer>  
    42. </dbServerList>  
  7. QueryRouter 查询路由配置
  8. 配置项是否必选默认值说明
    classNameQueryRouter实现类,Amoeba ForMysql(com.meidusa.amoeba.mysql.parser.MysqlQueryRouter)。
    functionConfig用于解析sql函数的配置文件,如果不配置则将不解析包含函数sql或者解析的不完整。
    ruleConfig数据切分规则配置文件,如果不配置则sql数据切分功能将不能用
    needParsetrue是否对 sql进行parse,如果false则将不能使用数据切分、读写分离等功能
    defaultPoolneedParse=false、无法解析query、不满足切分规则的、writePool|readPool == null情况。所有sql 将在默认得dbServer上面执行。(必选)
    writePool启用needParse 功能,并且没有匹配到数据切分规则,则update、insert、delete 语句将在这个pool中执行
    readPool启用needParse 功能,并且没有匹配到数据切分规则,则select 语句将在这个pool中执行
    LRUMapSize1000statment cache ,存放 sql解析后得到的statment
    queryRouter Tag Configuration
    1. <queryRouter>  
    2.     <className>com.meidusa.amoeba.mysql.parser.MysqlQueryRouter</className>  
    3.     <!--  
    4.     <property name="ruleConfig">./src/conf/rule.xml</property>  
    5.     <property name="functionConfig">./src/conf/functionMap.xml</property>  
    6.     -->  
    7.     <property name="needParse">false</property>  
    8.     <property name="LRUMapSize">1500</property>  
    9.     <property name="defaultPool">server1</property>  
    10.     <!--  
    11.     <property name="writePool">server1</property>  
    12.     <property name="readPool">server1</property>  
    13.     -->  
    14. </queryRouter> 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值