Amoeba for Mysql试用所感

Amoeba for Mysql是一个类似于mysql-proxy国人开发的开源项目,主要功能是数据库代理,项目地址:http://sourceforge.net/projects/amoeba/
于mysql-proxy最大的不同是其配置文件简单,很容易就能实现读写分离、数据分片和主从备份,在测试环境下做了几种应用的测试,主要是Mysql的数据分片和读写分离。
具体步骤在文档中已经很详细了(http://docs.hexnova.com/amoeba/),下面是一些个人感受:
1、使用水平分片和原始mysql操作还是有很多不一样的,在insert操作的时候,必须指明分片key对应的字段,否则不会正确插入到对应数据库中。同样做select操作时,要指定key字段,这对于要对全表数据进行select操作的时候是有问题的,正常情况应该是分别针对每个key分表来操作然后再运算,比较麻烦。
总体来说,要使用水平分片必须很小心,在数据设计上要充分考虑分表的特权性。
2、对于读写分离的支持很稳定,应该说使用amoeba for mysql是读写分离最好的理由,配置相比mysql-proxy简单多了。其性能还是不错的,对java虚拟机进行一定优化设置以后,吞吐率能达到一个不错的数值,日志也很丰富。
3、单点是个很重要的问题,一方面是单点性能限制了,另一方面是单点的故障无法保证,我想用到mysql数据分片或读写分离的业务应该是比较大或者繁忙的,这方面的要求还是比较高的。
4、对这个的使用个人还是比较保留,可能从业务逻辑上分片和读写分离更容易避免单点问题,这增加了对开发的要求

发表评论