`
csrcom
  • 浏览: 13345 次
  • 性别: 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
分享到:
评论
53 楼 Fenng 2008-07-15  
有时间我也写篇Blog介绍一下 阿米巴项目
52 楼 csrcom 2008-07-08  
kabbesy 写道
看了几篇之后提个问题:这个Amoeba跟Mysql NDB,也就是现在的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
51 楼 kabbesy 2008-07-08  
jackflit 写道
收据实话,除了银行有啥业务是丢数据就会死人的吗?
丢数据没有啥不可接受的。
只要99%的正常情况不丢,就够了
程序员何苦自己为难自己。


丢数据就会死人的应用很多,但凡涉及钱的,都要求严格的acid
50 楼 kabbesy 2008-07-08  
ztka 写道
csrcom 写道
这个话题我们先到这儿啊


嗯,你可以试试看,加入相互侦测机制,做到相互fail over。不然你软件本身没有failover机制。你可以利用第三方,但是这样不保险。


建议看看官方的MySQL Cluster技术架构图。
ApplicationNode, DataNode, ManagementNode

1相当于query,2相当于存储,3就是你们说得第三方。它负责心跳检测、数据replication的规则等
49 楼 kabbesy 2008-07-08  
看了几篇之后提个问题:这个Amoeba跟Mysql NDB,也就是现在的MySQL Cluster有啥区别?
本来mysql-proxy只是读写分离和简单复制。如果Amoeba是对mysql-proxy的加强,那也倒是ok了。但Amoeba居然加入了HA方面的部分特性,那直接上升到MySQL Cluster的高度了。这个是不是……?

48 楼 csrcom 2008-06-27  
可以把amoeba for mysql 当作一个mysql 服务端来看待,对应用透明的。
不管客户端是c写的还是 java写的使用上面跟使用原来的mysql一样。

xml Server tag中的username/password 是proxy 的 username/password,用于对外验证的
47 楼 dingyuan 2008-06-27  
是否能写一些如何结合hibernate进行相关配置?看到回帖,应该是通过jdbc的url负责处理,还是类似原来的jdbc:mysql://localhost:3306/test的形式,只不过端口号就是proxy的端口号,而userName和password就是proxy的userName和password,不知道对不对。。。
个人感觉这是一个非常好的项目,项目价值不亚于mysql proxy,一定要坚持啊lz
46 楼 csrcom 2008-06-26  
amoeba for mysql
最新文档:Amoeba:分布式数据库Proxy解决方案

http://amoeba.sourceforge.net/amoeba.pdf
45 楼 csrcom 2008-06-20  
Amoeba for mysql 0.15 Released
http://www.sf.net/projects/amoeba

修正了几个bug!
44 楼 csrcom 2008-05-07  
数据切分方面 基本上面没有个人网站需要用得。
用户相当少
43 楼 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目的是一致的。


有ReplicationConnector,应用程序不用考虑连哪个data source的问题。
42 楼 xds2000 2008-05-06  
to ztka:
对amoeba来说后端使用的数据库决定了数据安全指数。amoeba本身不存储任何数据,只是充当路由、proxy功能。

你的这种在oralce,使用DataGuard实现,在Mysql中使用master-master实现。
楼主的技术还有很有新意的。只不过现在来说,还需要实践的考验。
41 楼 csrcom 2008-05-05  
相互侦测也需要通知使用方的:"我的另外几个兄弟不能用了,用我吧!"
所以driver是主动方,failover是这一方需要做的事情。
40 楼 ztka 2008-05-05  
csrcom 写道
这个话题我们先到这儿啊


嗯,你可以试试看,加入相互侦测机制,做到相互fail over。不然你软件本身没有failover机制。你可以利用第三方,但是这样不保险。
39 楼 csrcom 2008-05-05  
这个话题我们先到这儿啊
38 楼 csrcom 2008-05-05  
csrcom 写道
为什么非要自身实现呢?

其实你想要表达的是amoeba它应该提供一个driver,而这个driver他是为了多台amoeba 负载均衡、failover的。

为什么我还需要实现这种机制呢? mysql connector-j已经提供了这种机制。


很多企业丢失数据以后在软件无法自动修复而采用人工修复的方案,只不过你不知道他们到底做过了什么。
他们可以从各个数据现场采集数据从而获得需要修复的数据。尽量保证数据不会丢失、或者说将损失降低到最小
37 楼 ztka 2008-05-05  
csrcom 写道
他不是本身实现的,需要有driver来依赖的。


他的driver是自己开发的,做到完全数据同步。
36 楼 ztka 2008-05-05  
csrcom 写道
Oracle他不会承诺他的软件会丢数据,包括我也会说我的软件不会丢数据。那么到底会丢到那儿呢?
每一个环节都可能存在问题,而这些不是软件本身问题,而是软件之间的数据交互会造成问题,也有其他方面的因素:天灾人祸.... 为什么有一种叫容灾。我觉得如果你是我主管让我来保证数据永不丢失我绝对不敢保证。同样你让世界一流的人才来承诺的话同样会有这样答案,如果不是这样那他是初生牛犊不怕虎啊,精神可嘉


我觉得你应该看看oracle RAC的资料,mysql可以看看continuent的资料,看看是否做到数据丢失。为什么需要购买那么昂贵的,oracle,或者采用很贵的架构方案,前提就是数据不丢失,如果银行,证券等系统数据可以丢失,你可以想象什么样子。
35 楼 csrcom 2008-05-05  
他不是本身实现的,需要有driver来依赖的。
34 楼 csrcom 2008-05-05  
Oracle他不会承诺他的软件会丢数据,包括我也会说我的软件不会丢数据。那么到底会丢到那儿呢?
每一个环节都可能存在问题,而这些不是软件本身问题,而是软件之间的数据交互会造成问题,也有其他方面的因素:天灾人祸.... 为什么有一种叫容灾。我觉得如果你是我主管让我来保证数据永不丢失我绝对不敢保证。同样你让世界一流的人才来承诺的话同样会有这样答案,如果不是这样那他是初生牛犊不怕虎啊,精神可嘉

相关推荐

    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