`
csrcom
  • 浏览: 13368 次
  • 性别: 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。
多谢。

相关推荐

    MySQL搭建Amoeba_读写分离.docx

    Amoeba 是一个基于 MySQL 的 proxy,能够集中地响应应用的请求,并根据用户事先设置的规则,将 SQL 请求发送到特定的数据库上执行,从而实现负载均衡、读写分离、高可用性等需求。 一、Amoeba 简介 Amoeba 是一个...

    Amoeba搞定mysql主从读写分离

    Amoeba是一款开源的MySQL中间件,专为实现主从读写分离而设计。在Java开发环境中,Amoeba的使用能够帮助开发者构建出高效、稳定的分布式数据库系统。 首先,了解Amoeba的工作原理至关重要。Amoeba作为透明的数据分...

    Amoeba+mysql 读写分离 Keepalived+mysql

    在构建高可用和高性能的数据库系统中,读写分离和负载均衡是常用的技术手段。这里我们主要探讨的是如何使用Amoeba与MySQL实现读写分离,以及如何利用Keepalived来构建MySQL的高可用集群。这两部分内容对于保障数据库...

    amoeba_mysql读写分离部署说明.docx

    Amoeba 是一款专为 MySQL 设计的中间件,用于实现数据库的读写分离和负载均衡。它的主要功能是接收应用程序的 SQL 请求,根据预设规则将这些请求转发到合适的 MySQL 实例上执行,从而提高系统的可扩展性和可用性。...

    amoeba同时做读写分离和水平切分

    这是针对amoeba for mysql的一个具体案例,实现水平切分和读写分离

    linux下mysql amoeba读写分离配置

    在Linux环境下,MySQL数据库的读写分离和数据同步是提高数据库性能和可用性的关键策略。MySQL的主从复制(Master-Slave Replication)和读写分离(Read-Write Separation)是实现这一目标的常用方法。这里我们将探讨...

    amoeba-mysql-binary-2.2.0.tar.gz

    amoeba-mysql-binary-2.2.0.tar.gz amoeba-mysql-binary-2.2.0.tar.gz amoeba-mysql-binary-2.2.0.tar.gz amoeba-mysql-binary-2.2.0.tar.gzamoeba-mysql-binary-2.2.0.tar.gz amoeba-mysql-binary-2.2.0.tar.gz ...

    mysql读写分离amoeba配置文件

    mysql读写分离 中间件amoeba配置文件配置号的改几个参数就可以直接用https://blog.csdn.net/z13615480737/article/details/79951505 参考这个改2个文件就可直接用

    amoeba-mysql-binary-2.2.0.tar

    Amoeba是一个分布式数据库中间件,它能够将一个MySQL实例透明地扩展到多个节点,实现数据的高可用性和负载均衡。这个tar文件可能包含了Amoeba运行所需的全部文件,如配置文件、库文件和可执行文件等。 描述中提到了...

    使用amoeba实现mysql读写分离.md

    使用amoeba实现mysql读写分离.md

    Amoeba(amoeba-mysql-3.0.5-RC-distribution.zip)

    可以实现数据库负载均衡、读写分离、高可用性等功能。 amoeba-mysql.zip压缩包内容: amoeba-mysql-3.0.5-RC-distribution.zip amoeba-mysql-binary-2.2.0.tar.gz amoeba-mysql-binary-2.1.0-RC5.tar.gz amoeba-...

    使用mysql-proxy实现mysql读写分离

    ### 使用mysql-proxy实现MySQL读写分离 随着业务规模的不断扩大,数据库系统往往成为整个系统中的瓶颈之一。为了提高系统的响应速度以及数据处理能力,一种常用的技术手段就是采用**读写分离**的方式。读写分离的...

    使用amoeba搭建mysql读写分离

    配合docker_mn.sh 主从复制和jdk1.8.sh jdk安装脚本 可以搭建mysql数据库的读写分离

    windows平台用amoeba实现读写分离

    具有负载均衡、高可用性、SQL 过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。 通过Amoeba能够完成多数据源的高可用、负载均衡、数据切片的功能,目前Amoeba已在很多企业的生产线上面...

    MySQL主从同步与读写分离配置图文详解

    ### MySQL主从同步与读写分离配置详解 #### 一、实验目的 在现代的生产环境中,单一的MySQL服务器往往无法满足对数据处理的安全性、高可用性和高并发的需求。因此,采用**主从同步(Master-Slave Replication)**...

Global site tag (gtag.js) - Google Analytics