Amoeba属于分布式数据库代理开发框架;
一.Amoeaba For MySql:
是Amoeba项目的子项目。
1. 对数据端透明。具有负载均衡,高可用性,sql过滤,读写分离,可路由相关的query到目标数据库,可并发请求多态数据库合并结果;
2. 使用Amoeaba for MySql的先决条件:
a. Java SE 1.5或以上。Amoeaba框架是基于JDK1.5开发的;
b. mysql 4.1以后的版本;
3. 可以同时发送相同的sql到多台数据库,然后合并结果返回给客户端;
二. Amoeba for Aladdin
1. 是针对企业数据库整合产生的另外一种数据库切分,读写分离,负载均衡的中间件产品;
2. 客户端连接aladdin必须用mysql协议;
三. Master/Slave结构之下的读写分离
1. 只需要相关的配置就可以了;
2. 写master并replication到slave,读slave;
3. 可配置slave1, slave2... 形成一个虚拟的virtualSlave,该配置提供负载均衡,failOver,故障恢复;
四.基于Amoeba数据垂直切分
1. 垂直切分,指按业务,产品进行切分;
2. 配置rule.xml,为表设置对应的数据库,数据操作时,Amoeba就自动到对应的数据库中执行。
五.基于Amoeba数据水平切分(sharding)
1. 配置dbserver的tableRule.rule就可以实现;
2. 自带函数如hash, abs,也可以自己添加新的规则函数;