2008-05-01
Amoeba for mysql 0.12发布(读写分离、负载均衡、Failover、数据切分)
关键字: amoeba
Amoeba 座落与Client、Database Server(s)之间。 具有负载均衡、高可用性、sql过滤、可承受高并发、读写分离、Query Route(解析sql query语句,并且根据条件与预先设定的规则,请求到指定的目标数据库。可并发请求多台数据库合并结果)、对客户端透明。
主要降低 数据切分带来的复杂多数据库结构、数据切分规则 给应用带来的影响。
能够轻易实现读写分离
Failover
负载均衡。
能够帮助解决数据切分问题
目前amoeba 实现了 mysql 数据库的相关技术。
适用:
mysql 4.1或者以上版本(mysql 协议版本:10)
暂时不支持事务、DDL语句目前只会分配给默认的数据库执行
运行环境:
至少需要运行 mysql 4.1以上 服务一个;
Java 1.5或 以上版本
中文文档地址: http://amoeba.sourceforge.net/amoeba.pdf
amoeba 未来发展方向: http://amoeba.sourceforge.net/amoeba-big-picture.pdf
文件下载: http://www.sourceforge.net/projects/amoeba如果无法下载通过这儿: http://amoeba.sourceforge.net/amoeba-mysql-0.16.zip
主要降低 数据切分带来的复杂多数据库结构、数据切分规则 给应用带来的影响。
能够轻易实现读写分离
Failover
负载均衡。
能够帮助解决数据切分问题
目前amoeba 实现了 mysql 数据库的相关技术。
适用:
mysql 4.1或者以上版本(mysql 协议版本:10)
暂时不支持事务、DDL语句目前只会分配给默认的数据库执行
运行环境:
至少需要运行 mysql 4.1以上 服务一个;
Java 1.5或 以上版本
中文文档地址: http://amoeba.sourceforge.net/amoeba.pdf
amoeba 未来发展方向: http://amoeba.sourceforge.net/amoeba-big-picture.pdf
文件下载: http://www.sourceforge.net/projects/amoeba如果无法下载通过这儿: http://amoeba.sourceforge.net/amoeba-mysql-0.16.zip
评论
csrcom
2008-07-18
非常感谢冯大辉啊
最新的bug fix
linux上面 schema、table name 大小写敏感问题已经解决。
http://amoeba.sf.net/amoeba-mysql-0.16.1.zip
最新的bug fix
linux上面 schema、table name 大小写敏感问题已经解决。
http://amoeba.sf.net/amoeba-mysql-0.16.1.zip
Fenng
2008-07-15
有时间我也写篇Blog介绍一下 阿米巴项目
csrcom
2008-07-08
kabbesy 写道
看了几篇之后提个问题:这个Amoeba跟Mysql NDB,也就是现在的MySQL Cluster有啥区别?
本来mysql-proxy只是读写分离和简单复制。如果Amoeba是对mysql-proxy的加强,那也倒是ok了。但Amoeba居然加入了HA方面的部分特性,那直接上升到MySQL Cluster的高度了。这个是不是……?
本来mysql-proxy只是读写分离和简单复制。如果Amoeba是对mysql-proxy的加强,那也倒是ok了。但Amoeba居然加入了HA方面的部分特性,那直接上升到MySQL Cluster的高度了。这个是不是……?
如果按整体的健壮性来说,proxy 这一层对后端采用HA是一定需要的
Amoeba 跟 mysql cluster还是有很大区别的。
未来Amoeba的发展方向:作为多种数据库前端的 proxy,这种设计跟 http://www.continuent.org/ 有点类似。
但 continuent 不解决数据切分、读写分离问题、HA。不知道我说的对不对。
Amoeba big picture:
http://amoeba.sf.net/amoeba-big-picture.pdf
kabbesy
2008-07-08
jackflit 写道
收据实话,除了银行有啥业务是丢数据就会死人的吗?
丢数据没有啥不可接受的。
只要99%的正常情况不丢,就够了
程序员何苦自己为难自己。
丢数据没有啥不可接受的。
只要99%的正常情况不丢,就够了
程序员何苦自己为难自己。
丢数据就会死人的应用很多,但凡涉及钱的,都要求严格的acid
kabbesy
2008-07-08
ztka 写道
csrcom 写道
这个话题我们先到这儿啊
嗯,你可以试试看,加入相互侦测机制,做到相互fail over。不然你软件本身没有failover机制。你可以利用第三方,但是这样不保险。
建议看看官方的MySQL Cluster技术架构图。
ApplicationNode, DataNode, ManagementNode
1相当于query,2相当于存储,3就是你们说得第三方。它负责心跳检测、数据replication的规则等
kabbesy
2008-07-08
看了几篇之后提个问题:这个Amoeba跟Mysql NDB,也就是现在的MySQL Cluster有啥区别?
本来mysql-proxy只是读写分离和简单复制。如果Amoeba是对mysql-proxy的加强,那也倒是ok了。但Amoeba居然加入了HA方面的部分特性,那直接上升到MySQL Cluster的高度了。这个是不是……?
本来mysql-proxy只是读写分离和简单复制。如果Amoeba是对mysql-proxy的加强,那也倒是ok了。但Amoeba居然加入了HA方面的部分特性,那直接上升到MySQL Cluster的高度了。这个是不是……?
csrcom
2008-06-27
可以把amoeba for mysql 当作一个mysql 服务端来看待,对应用透明的。
不管客户端是c写的还是 java写的使用上面跟使用原来的mysql一样。
xml Server tag中的username/password 是proxy 的 username/password,用于对外验证的
不管客户端是c写的还是 java写的使用上面跟使用原来的mysql一样。
xml Server tag中的username/password 是proxy 的 username/password,用于对外验证的
dingyuan
2008-06-27
是否能写一些如何结合hibernate进行相关配置?看到回帖,应该是通过jdbc的url负责处理,还是类似原来的jdbc:mysql://localhost:3306/test的形式,只不过端口号就是proxy的端口号,而userName和password就是proxy的userName和password,不知道对不对。。。
个人感觉这是一个非常好的项目,项目价值不亚于mysql proxy,一定要坚持啊lz
个人感觉这是一个非常好的项目,项目价值不亚于mysql proxy,一定要坚持啊lz
csrcom
2008-06-26
csrcom
2008-06-20
jackflit
2008-06-05
收据实话,除了银行有啥业务是丢数据就会死人的吗?
丢数据没有啥不可接受的。
只要99%的正常情况不丢,就够了
程序员何苦自己为难自己。
丢数据没有啥不可接受的。
只要99%的正常情况不丢,就够了
程序员何苦自己为难自己。
csrcom
2008-05-07
数据切分方面 基本上面没有个人网站需要用得。
用户相当少
用户相当少
nickcen
2008-05-06
csrcom 写道
amoeba没有复制功能. 上面的例子只是讲述了 在mysql 在 master-slave结构下,通常做法是读写分离,master充当写 slave充当读 。
master-slave之间的复制还是mysql之间的内部协议完成的。
传统的做法可能需要在客户端配置多个mysql datasource。
可能会在指定的sql用指定的datasource(比如select 开头的语句用slave机器做datasource )。 这种大大增加了客户端的复杂度。并且连接数也相当多.
而引入amoeba就不用关心后面连接的是否是多台的mysql还是amoeba,对客户端完全透明。而且会帮助解决读写分离、负载均衡。这个跟mysql 官方开发的proxy目的是一致的。
master-slave之间的复制还是mysql之间的内部协议完成的。
传统的做法可能需要在客户端配置多个mysql datasource。
可能会在指定的sql用指定的datasource(比如select 开头的语句用slave机器做datasource )。 这种大大增加了客户端的复杂度。并且连接数也相当多.
而引入amoeba就不用关心后面连接的是否是多台的mysql还是amoeba,对客户端完全透明。而且会帮助解决读写分离、负载均衡。这个跟mysql 官方开发的proxy目的是一致的。
有ReplicationConnector,应用程序不用考虑连哪个data source的问题。
xds2000
2008-05-06
to ztka:
对amoeba来说后端使用的数据库决定了数据安全指数。amoeba本身不存储任何数据,只是充当路由、proxy功能。
你的这种在oralce,使用DataGuard实现,在Mysql中使用master-master实现。
楼主的技术还有很有新意的。只不过现在来说,还需要实践的考验。
对amoeba来说后端使用的数据库决定了数据安全指数。amoeba本身不存储任何数据,只是充当路由、proxy功能。
你的这种在oralce,使用DataGuard实现,在Mysql中使用master-master实现。
楼主的技术还有很有新意的。只不过现在来说,还需要实践的考验。
csrcom
2008-05-05
相互侦测也需要通知使用方的:"我的另外几个兄弟不能用了,用我吧!"
所以driver是主动方,failover是这一方需要做的事情。
所以driver是主动方,failover是这一方需要做的事情。
ztka
2008-05-05
csrcom 写道
这个话题我们先到这儿啊
嗯,你可以试试看,加入相互侦测机制,做到相互fail over。不然你软件本身没有failover机制。你可以利用第三方,但是这样不保险。
csrcom
2008-05-05
这个话题我们先到这儿啊
csrcom
2008-05-05
csrcom 写道
为什么非要自身实现呢?
其实你想要表达的是amoeba它应该提供一个driver,而这个driver他是为了多台amoeba 负载均衡、failover的。
为什么我还需要实现这种机制呢? mysql connector-j已经提供了这种机制。
其实你想要表达的是amoeba它应该提供一个driver,而这个driver他是为了多台amoeba 负载均衡、failover的。
为什么我还需要实现这种机制呢? mysql connector-j已经提供了这种机制。
很多企业丢失数据以后在软件无法自动修复而采用人工修复的方案,只不过你不知道他们到底做过了什么。
他们可以从各个数据现场采集数据从而获得需要修复的数据。尽量保证数据不会丢失、或者说将损失降低到最小
ztka
2008-05-05
csrcom 写道
他不是本身实现的,需要有driver来依赖的。
他的driver是自己开发的,做到完全数据同步。
ztka
2008-05-05
csrcom 写道
Oracle他不会承诺他的软件会丢数据,包括我也会说我的软件不会丢数据。那么到底会丢到那儿呢?
每一个环节都可能存在问题,而这些不是软件本身问题,而是软件之间的数据交互会造成问题,也有其他方面的因素:天灾人祸.... 为什么有一种叫容灾。我觉得如果你是我主管让我来保证数据永不丢失我绝对不敢保证。同样你让世界一流的人才来承诺的话同样会有这样答案,如果不是这样那他是初生牛犊不怕虎啊,精神可嘉
每一个环节都可能存在问题,而这些不是软件本身问题,而是软件之间的数据交互会造成问题,也有其他方面的因素:天灾人祸.... 为什么有一种叫容灾。我觉得如果你是我主管让我来保证数据永不丢失我绝对不敢保证。同样你让世界一流的人才来承诺的话同样会有这样答案,如果不是这样那他是初生牛犊不怕虎啊,精神可嘉
我觉得你应该看看oracle RAC的资料,mysql可以看看continuent的资料,看看是否做到数据丢失。为什么需要购买那么昂贵的,oracle,或者采用很贵的架构方案,前提就是数据不丢失,如果银行,证券等系统数据可以丢失,你可以想象什么样子。
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 245 次
- 性别:

- 来自: 杭州

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
Amoeba for mysql 0.12发 ...
非常感谢冯大辉啊 最新的bug fix linux上面 schema、tab ...
-- by csrcom -
Amoeba for mysql 0.12发 ...
有时间我也写篇Blog介绍一下 阿米巴项目
-- by Fenng -
Amoeba for mysql 0.12发 ...
kabbesy 写道看了几篇之后提个问题:这个Amoeba跟Mysql NDB, ...
-- by csrcom -
Amoeba for mysql 0.12发 ...
jackflit 写道收据实话,除了银行有啥业务是丢数据就会死人的吗? 丢数据没 ...
-- by kabbesy -
Amoeba for mysql 0.12发 ...
ztka 写道csrcom 写道这个话题我们先到这儿啊 嗯,你可以试试看,加入 ...
-- by kabbesy






评论排行榜