最近找到一个dbproxy的开源产品amoeba。试用了下在数据库master/slaves模式下建立dbproxy对上层实现透明,感觉不错,分享给大家。
先说说我理解的dbproxy吧,所谓dbproxy,就是在应用层和分布式数据库之间的中间层服务,使数据库可以完全透明的对应用层提供服务。
使原来的 应用层 -> 数据库 两层结构 变为 应用层 -> dbproxy -> 数据库 的三层结构
amoeba的特性:
很容易解决读写分离(Amoeba for mysql)
能够轻松的配置后端被代理服务的负载均衡,Amoeba内部可用构建一个虚拟的服务池,该服务池有多个目标服务构成。
数据切分:强大的规则路由支持,能够支撑足够想象空间的路由规则,使得绝大多数数据切分的想法得以实现。
下载地址:
svn地址:
相关文档:http://docs.hexnova.org/amoeba/
启动方法:
出现 5.1.45-mysql-amoeba-proxy-2.1.0-RC5即按照成功
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 918201446
Server version: 5.1.45-mysql-amoeba-proxy-2.1.0-RC5 Source distribution
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql>
简单的试了下master/slaves读写分离时的代理情况,这个也是在公司的时候经常应用的模式,对应用方来说是透明的,不需要关心哪个库是主库,哪个库是从库,通过统一的接口进行读写就行。使用还是相当简洁方便的
安装方法:http://docs.hexnova.org/amoeba/rw-splitting.html