Amoeba Blog: http://amoeba.meidusa.com
3 / 12
一、 引言
为什么会有 Amoeba 这个产品,在接受 InfoQ 中文站 Fenng 采访的时候,也提到这个
问题。主要原因是自己在使用 mysql,并且关注 MySQL Proxy 也有一段时间了。MySQL Proxy
的这种想法做的非常棒,它能够根据自己的想法去构造目标的 MySQL Proxy 应用,比如监
控 SQL 执行、数据流量、读写分离。但由于我们使用 MySQL Proxy 并不能非常轻易地解决
一些问题(读写分离、数据切分、水平切分、负载均衡),而是需要写大量的 Lua Script,这
些 Lua 并不是现成的而是自己需要去写。这个工作对于并不熟悉 MySQL Proxy 内置变量、
MySQL Protocol 来说是非常困难的。
因此带着这个想法去设想做一个非常容易使用、可移植性非常强的软件。Amoeba 就因
此诞生了。为什么叫 Amoeba? 这个想法我是突然想到的,Amoeba 中文意思是"变形虫",
Amoeba 被设想为数据库代理的开发框架,它可以为符合 Amoeba 框架的任何数据库开发代
理层。因此也比较象"变形虫"一样能够变成目标数据库的代理层软件。
二、 Amoeba 简介
开源 Amoeba(变形虫)项目,该开源框架于 2008 年 发布一款基于 amoeba 框架的产品
amoeba for mysql 软件而开始,框架自 2.0 以及未来版本 License 在 AGPL 协议下发布。Amoeba
for mysql 这个软件致力于 mysql 的分布式数据库代理层,座落在 Client 与服务(数据库服务
以及其他服务)之间。对客户端透明,具有负载均衡、高可用性、query filter、读写分离、
可路由相关的 query 到目标数据库也可并发请求多台数据库合并结果。 在 amoeba 上面你
能够完成多数据源的高可用、负载均衡、数据切片等功能。目前在很多企业的生产线上面使
用。
Amoeba(变形虫)项目的定位:Proxy frameWork,专注后端服务代理开发。Amoeba 本身具备服
务管理,网络连接管理、心跳管理器、路由规则控制等、后端服务负载均衡策略。
三、 为什么需要 Amoeba
随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩充,数据库应用 已
经普遍建立于计算机网络之上。这时集中式数据库系统表现出它的不足以及商业分布式方案代价大: