`
csrcom
  • 浏览: 13149 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Amoeba for mysql 0.31发布(读写分离、负载均衡、Failover、数据切分)

阅读更多
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
amoeba 开发者博客: http://amoeba.meidusa.com
分享到:
评论
93 楼 grantbb 2009-04-24  
看过amoeba的文档之后,有几个问题请教一下:

1.假如我要用到线上环境,那么做水平拆分,应该要求现在的应用就要不能用 join 那些要进行水平拆分的表。

2.如果水平拆分后,数据在写入的时候,是如何进行处理的?主要是insert的时候,是由那块决定写入那张表中?

希望能够得到答复,谢谢。
92 楼 grantbb 2009-04-23  
amoeba非常好的理念,一些大到一定规模的网站都可以用。

准备在我们这里用一下。

支持。
91 楼 lujiang080800 2009-02-24  
“ztka你没明白我的意思....

client端使用mysql jdbc driver,通过配置jdbc:mysql://192.168.1.2:8066,192.168.1.3:8066/test (可支持多台mysql或者amoeba)

客户端连接的是2台amoeba。即使挂了1台amoeba,那么客户端来会自动连接到另外一台amoeba/mysql。

对应用来说它不知道后面是否是真实的mysql server。因为amoeba是解析mysql协议的。”


上面的是JDBC方式,如果是ODBC方式怎么让它(可支持多台mysql或者amoeba)
90 楼 sdh5724 2009-02-16  
csrcom 写道
老刘,最近如何?


最近开始搞安全, 还有性能, 还可以, 接下来, 我也要介入ameoba的开发, 现在缺乏监控, 统计等等功能, 也许性能上还要进一步加强, 还有ameoba也许会做一个 in-vm [独立能管理多库的driver?] 的jar包, 以支持那些对SERVER生厌的人。 对了, 你最近有做代码提交么? 
89 楼 sdh5724 2009-02-16  
csrcom 写道
myreligion 你好,
1、amoeba 的负载均衡可以通过硬件设备、还有mysql提供的驱动这一层来解决负载均衡、HA。

2、amoeba安装在普通的服务器硬件上面,自身可以支持4K以上并发连接,每秒大概能处理1w以上的sql请求,但不太适合每次请求有几十w条结果数据返回的sql。

3、目前暂时不支持事务,未来将会支持
4、除了mysql-proxy,目前个人没有专门与其他产品比较过


如果没有硬件负载均衡, 可以使用LINUX LVS, 有兴趣可以看看, 是草根系统的解决办法。 
88 楼 csrcom 2009-02-16  
yefeng ,文档里面的确没有api docs。下一版本将amoeba 核心的 api文档附上。
多谢提醒
87 楼 csrcom 2009-02-16  
myreligion 你好,
1、amoeba 的负载均衡可以通过硬件设备、还有mysql提供的驱动这一层来解决负载均衡、HA。

2、amoeba安装在普通的服务器硬件上面,自身可以支持4K以上并发连接,每秒大概能处理1w以上的sql请求,但不太适合每次请求有几十w条结果数据返回的sql。

3、目前暂时不支持事务,未来将会支持
4、除了mysql-proxy,目前个人没有专门与其他产品比较过
86 楼 csrcom 2009-02-16  
老刘,最近如何?
85 楼 yefeng 2009-02-13  
提个建议的,你文档里面,怎么没有API
84 楼 myreligion 2009-02-06  
不错,希望下次项目能够用上。

对于您的系统,提几个建议供参考,呵呵:

1. 如何解决Amoeba自身的单点问题?不能你当了,大家都完了。

2. 性能如何?测试数据什么样?

3. 如何处理事务?

4. 不光是mysql-proxy了,比ojdbc强多少?


83 楼 sdh5724 2009-02-06  
老陈, 赶紧写啊。 NND, 我们等不及了。
目前我们FOR ORACLE的测试下来, 效果还不错。上线 8个SERVER压力很很很小。 高峰期能挡住4W SQL/S 哈哈哈。
82 楼 csrcom 2009-01-21  
其实你谈的几个问题,关心的是应用层面的问题。
你把amoeba独立运行,它对你的应用程序是完全透明的,就把它当作虚拟的mysql。

而amoeba关心的是你如何设计数据切分规则。把这个具体的数据切分放到amoeba上面。应用程序不需要关心具体的数据切分了。
这样对你的应用来说更加简单了。


事务未来将会支持的。
81 楼 wym0291 2009-01-13  
请教以下现实问题:
1.如何支持应用服务器提供的数据源?
2.如何支持事务?
3.如何与hibernate或ibates集成?
4.如何与spirng集成?
80 楼 csrcom 2008-11-12  
dreampursuer 写道
已经在试用了,读写分离使用挺简单的。
不过目前我们有这样的一个需求,不知是否直接就能使用。
比如我们的数据库中有d_sh,d_bj,d_gz等数据库,这些数据库中的表结构都一样,比如这些数据库内都有一个表为t表,这个表中没有city字段,是否可以建立一个虚拟的字段city,当select * from t where city='bj'时自动查询的是d_bj库中的表t.


这个不行哦,因为amoeba现在不会重新进行sql重写。会将这条sql原样发送给mysql ,这样mysql肯定会返回错误的信息的
79 楼 csrcom 2008-11-12  
leeqianjun 写道
有没有一个简单调用的例子


使用amoeba for mysql 其实非常简单的,
1. 首先要把amoeba 当作 mysql 来看待.
2. 要在amoeba配置文件(amoeba.xml)中配置目标的 mysql
3. 启动amoeba( bin目录下面有windows 的bat脚本 跟 linux的shell 脚本).
4. 应用程序或者客户端连接 amoeba 跟 连接 mysql的方式一样
78 楼 dreampursuer 2008-11-11  
已经在试用了,读写分离使用挺简单的。
不过目前我们有这样的一个需求,不知是否直接就能使用。
比如我们的数据库中有d_sh,d_bj,d_gz等数据库,这些数据库中的表结构都一样,比如这些数据库内都有一个表为t表,这个表中没有city字段,是否可以建立一个虚拟的字段city,当select * from t where city='bj'时自动查询的是d_bj库中的表t.
77 楼 luckaway 2008-11-10  
我已经在使用amoeba了!

76 楼 leeqianjun 2008-11-10  
有没有一个简单调用的例子
75 楼 csrcom 2008-10-23  
amoeba 目前不解决这类问题,因为代价实在太大了,因此请大家需要好好切分你们得数据,避免跨数据库进行join,这也是让数据库架构可线性扩容得基础。
74 楼 zgia 2008-10-23  
数据库做垂直或者水平切分后,请问Amoeb是如何处理join查询的?
比如blog在ServerA,user在ServerB。
多谢。

相关推荐

Global site tag (gtag.js) - Google Analytics