About Amoeba
Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户
端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请
求多台数据库合并结果。
主要解决:
* 降低 数据切分带来的复杂多数据库结构
* 提供切分规则并降低 数据切分规则 给应用带来的影响
* 降低db 与客户端的连接数
* 读写分离
* 制定一种规则可支持DB线性扩容
目前在amoeba 框架上面已经实现了 amoeba for mysql.
amoeba 中文文档下载地址:
http://amoeba.meidusa.com/amoeba.pdf
amoeba 未来发展方向:
目前 DB 的发展方向很需要这种应用,太有用了!
我每期都关注。
Goooood job.
实在太感谢了~!
今天在DBA Notes注意到你的框架!发现这东西也正是我需要的!先熟悉一下!
你好:
今天看了你的介绍感觉比mysql-proxy好多了,尽管mysql-proxy好了很多,但是它还是对应用程序有些限制,(当然是我的lua基本功不够)我想问一下amoeba对应用程序有什么限制么?amoeba for mysql和amoeba for aladdin 各适合哪个种环境呢?
amoeba for mysql 后端数据库只用mysql,amoeba 对前端应用来说是一个mysql 数据库
amoeba for aladdin 后端可跟oracle 、mysql、postgresql等,未来可能还会支持其他数据库。此时for aladdin对前端应用来说还是一个mysql数据库
这2者在性能上面也是有差别的,for mysql 性能会比 for aladdin提升 20%以上
for aladdin主要优势在于后端可以配置各种数据库。
我去年做了一个基于PHP的分布式数据库query框架,跟这个项目非常相似。如果早发现这里,我就不用那么麻烦了。这个项目太重要了,强烈支持。
我有几个问题想请教一下:
1、请问如果使用了该项目以后,对数据库表的设计有什么建议?对sql语句的设计有什么建议?有什么需要特别注意和避免的问题?
2、对数据库存储过程、触发器和视图是如何支持的?能支持事务么?
3、上文提到Amoeba对CPU的要求比较高,不知道对内存的要求如何?
4、能不能在Amoeba的基础上再增加自定义的过滤器?
5、与直接操作mysql数据库相比,性能的损失大概在怎么一个范围?
--------------------------------------------
以下是回复内容:
1、目前amoeba能够解析绝大部分的sql,偶尔也发现有些sql目前解析的时候没考虑到,最近正在发布新的版本来解决一些sql解析异常的问题,这种sql往往没有采用sql 变量绑定的方式。
2、存储过程目前还没考虑进去,因为存储过程对amoeba来说是黑盒子,无法执行数据切分规则。触发器:只需要数据库关心,视图对amoeba来说与表处理方式一样,暂时不支持事务
3.普通的查询(非大结果集返回,比如一次请求返回几十万条)对内存要求不高。
4、未来可考虑这方面的过滤,比如过滤一些sql。或者拒绝某种sql的执行都可以做到。
5、amoeba是属于代理层,起码要消耗2次网络IO+ amoeba自身的计算时候的消耗,
如果数据库的性能非常高,或者sql的执行并不消耗数据库的磁盘IO,那么这时候完全不能体现amoeba的好处,反而会降低整体的性能。
具体数据目前没有算过。
你好!看了amoeba的说明,对这个项目非常感兴趣。
我想请教你一个amoeba的使用问题:
假设现在有两个表T1和T2,其中T1是海量的数据表,T2是中级数据量的表,T1和T2之间存在大量复杂的关联查询(join, 嵌套查询, in, exists等等)。由于T1的数据量太大,需要进行水平分割。该如何用amoeba来解决这个问题?数据库应该怎么规划?
急盼回答,谢谢。
———————————————–
以下是回复内容:
很难回答你的问题. 只能说是一个建议吧, 一个数据库的可扩展性在一定成都上面需要将需求分析的合理,并且需要有人把握好未来数据量的增长程度与数据库架构,有些需求可能换一种方式也能满足需求,我个人建议千万别在应用程序中,特别是大数据量的表进行join。最好将这种需求分步操作。在处理这类问题的时候千万不要图个快。
amoeba运行的时候,必须保持 命令提示行 就是那个dos界面存在吗?能不能把amoeba做 成一种 开机即运行、没有界面的服务。另外amoeba运行之后,每隔一段时间出现一段测试信息。有没有什么地方可以设置成不显示
D:\Amoeba\amoeba-mysql-0.32\bin>amoeba.bat
log4j:WARN log4j config load completed from file:D:\Amoeba\amoeba-mysql-0.32\bin
\..\conf\log4j.xml
log4j:WARN ip access config load completed from file:D:\Amoeba\amoeba-mysql-0.32
\bin\../conf/access_list.conf
2009-06-09 17:55:29,937 INFO net.ServerableConnectionManager - Server listening
on /192.168.2.10:8066.
——————————————————
以下是回复内容:
amoeba 日志输出可用调整他的日志输出级别,具体可用看 conf/log4j.xml 将 level 级别调大,level目前可用的有: error、warn、info、debug 由高到低的级别。
设置成debug则高的level日志将都输出。
关于windows下面service的服务方式目前还没有提供出来。
hi,fella,我想找一份类似配置详解的东东,不知道有没有哈
————————————
以下是回复内容:
下载一份里面有pdf文档的,你先看一下,如果有什么疑问可以提一下,虽然不全面但估计涉及到大部分配置内容。
比较弱,想问问有没有amoeba的客户端例子
——————以下是回复内容—————————–
你好,amoeba是属于代理层,是一层透明的,你可以不需要关注,只要将amoeba代理指定的目标数据库,客户端依旧采用mysql 驱动,将链接地址指到amoeba即可。
客户端使用的用户名与密码在amoeba安装目录下/conf/amoeba.xml中设置的
博主,你好,今天安装 amoeba,一直报错误:
2009-08-10 17:44:18,319 ERROR net.MysqlServerConnection - handShake with /127.0.0.1:3306 error:Access denied for user ‘root’@'localhost’ (using password: NO)
2009-08-10 17:44:23,322 DEBUG net.MysqlServerConnection - receive HandshakePacket packet from server:127.0.0.1:3306
2009-08-10 17:44:23,322 DEBUG net.MysqlServerConnection - authing packet sent to server:127.0.0.1:3306
2009-08-10 17:44:23,323 ERROR net.MysqlServerConnection - handShake with /127.0.0.1:3306 error:Access denied for user ‘root’@'localhost’ (using password: NO)
2009-08-10 17:44:28,326 DEBUG net.MysqlServerConnection - receive HandshakePacket packet from server:127.0.0.1:3306
2009-08-10 17:44:28,326 DEBUG net.MysqlServerConnection - authing packet sent to server:127.0.0.1:3306
2009-08-10 17:44:28,327 ERROR net.MysqlServerConnection - handShake with /127.0.0.1:3306 error:Access denied for user ‘root’@'localhost’ (using password: NO)
2009-08-10 17:44:33,330 DEBUG net.MysqlServerConnection - receive HandshakePacket packet from server:127.0.0.1:3306
2009-08-10 17:44:33,330 DEBUG net.MysqlServerConnection - authing packet sent to server:127.0.0.1:3306
2009-08-10 17:44:33,331 ERROR net.MysqlServerConnection - handShake with /127.0.0.1:3306 error:Access denied for user ‘root’@'localhost’ (using password: NO)
版本是:amoeba-mysql-1.0.0-BETA.tar.gz
这个是咋回事情 咋个解决
你好!看了amoeba的说明,好像amoeba是个开发框架,但是好像没有开发的说明,不知道博主是否有相关的介绍和资料。谢谢
我想请教几个问题:
1、如果客户端使用的PHP,不知道是否amoeba是否可以支持?
2、如果使用PHP的话,连接配置如何?
———————以下是回复内容—————————-
把amoeba当作mysql看待,php连接amoeba,amoeba连接mysql
具体配置可以参考pdf文档
在putty中运行./bin/amoeba&
正常,关掉putty,amoeba也会停止,为什么?怎么解决?
——————————–
nohup ./bin/amoeba &
应该可以解决你的问题
非常好的项目,感谢分析。