Amoeba是一个类似MySQL Proxy 的 分布式数据库中间代理层软件,是由陈思儒开发的一个开源的java项目。其主要功能包括读写分离,垂直分库,水平分库等,经过测试,发现其功能和稳定性都 非常的不错,如果需要构架分布式数据库环境,采用Amoeba是一个不错的方案。目前Amoeba一共包括For aladdin,For MySQL和For Oracle三个版本,本文主要关注For MySQL版本的一个读写分离实现。实际上垂直切分和水平切分的架构也相差不大,改动几个配置就可以轻松实现。
下图是一个采用Amoeba的读写分离技术结合MySQL的Master-Slave Replication的一个分布式系统的架构:
Amoeba处于在应用和数据库之间,扮演一个中介的角色,将应用传递过来的SQL语句经过分析后,将写的语句交给Master库执行,将读的语句 路由到Slave库执行(当然也可以到Master读,这个完全看配置)。Amoeba实现了简单的负载均衡(采用轮询算法)和Failover。如果配 置了多个读的库,则任何一个读的库出现宕机,不会导致整个系统故障,Amoeba能自动将读请求路由到其他可用的库上,当然,写还是单点的依赖于 Master数据库的,这个需要通过数据库的切换,或者水平分割等技术来提升Master库的可用性。
Amoeba可以在不同机器上启动多个,并且做同样的配置来进行水平扩展,以分担压力和提升可用性,可以将Amoeba和MySQL装在同一台机 器,也可以装在不同的机器上,Amoeba本身不做数据缓存,所以对于内存消耗很少,主要是CPU占用。对于应用来说,图中的三个Amoeba就是三台一 模一样的MySQL数据库,连接其中任何一台都是可以的,所以需要在应用端有一个Load balance和Failover的机制,需要连接数据库时从三台中随机挑选一台即可,如果其他任何一台出现故障,则可以自动Failover到剩余的可 用机器上。MySQL的JDBC驱动从connector-j 3.17版本起已经提供了这样的负载均衡和故障切换的功能,那么剩下的事情对于应用来说就很简单了,不需要做太多的改动就能搭建一套高可用的MySQL分 布式数据库环境,何乐而不为?
相关推荐
Amoeba中间件是一个开源的分布式数据库代理层,专门设计用于MySQL数据库,它可以在客户端和MySQL服务器之间提供一层抽象,负责接收客户端的SQL请求,并将请求分发到后端的数据库服务器上。Amoeba中间件提供了多种...
### Amoeba: 分布式数据库Proxy解决方案 #### 背景与意义 随着信息技术的快速发展及互联网应用的广泛普及,传统的集中式数据库系统逐渐暴露出其局限性,包括性能瓶颈、可靠性问题以及扩展性不足等。为了克服这些...
### amoeba分布式数据库解决方案 #### 一、分布式数据库的发展背景及优势 随着互联网技术的快速发展,数据量呈爆炸性增长,传统的集中式数据库系统逐渐暴露出其局限性,包括性能瓶颈、可靠性问题以及扩展性不足等...
### Amoeba: 分布式数据库Proxy解决方案 #### 一、引言 随着信息技术的快速发展,数据量的急剧增长使得传统的集中式数据库面临着前所未有的挑战。为了应对这些挑战,分布式数据库技术应运而生,成为了现代企业数据...
Amoeba是一个分布式数据库中间件,它能够将一个MySQL实例透明地扩展到多个节点,实现数据的高可用性和负载均衡。这个tar文件可能包含了Amoeba运行所需的全部文件,如配置文件、库文件和可执行文件等。 描述中提到了...
### 分布式数据库Proxy解决方案(MySQL负载均衡) #### 背景 随着互联网技术的快速发展,数据量呈爆炸性增长,传统的集中式数据库系统逐渐暴露出其局限性,包括性能瓶颈、可靠性问题以及扩展性不足等。为了克服...
互联网的蓬勃发展,业务驱动技术不断升级,在系统越来越庞大,技术越来越复杂,应用部署集群化,所有压力全部...所以Mycat开源社区核心开发者共同撰写了本书,帮助企业更好的使用Mycat中间件架构企业分布式数据库系统。
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 ...
Amoeba MySQL 是一个分布式数据库系统,它基于开源的 MySQL 数据库引擎,旨在提供高可用性、可扩展性和性能优化。3.0.5 RC(Release Candidate)版本是该软件的一个候选发布版本,通常在正式版发布前,供用户测试和...
【标签】"amoeba" 和 "mysql" 指出Amoeba是为MySQL数据库设计的中间件,它可以无缝集成到现有的MySQL环境中,用户无需对应用程序进行大幅度的修改就能享受分布式数据库带来的好处。Amoeba作为MySQL的一个扩展,它在...
Amoeba 是一个分布式数据库代理系统,它位于客户端和数据库服务器之间,起到中间件的作用。Amoeba 的核心功能包括数据切分、负载均衡、高可用性和SQL过滤。数据切分是解决大数据量存储的关键,Amoeba 提供了一种机制...
Amoeba 是一个分布式数据库中间件,主要用于MySQL的读写分离。它的主要作用是将读操作分发到多个从库,从而减轻主库的压力,提高系统整体的读取性能。Amoeba 通过透明的方式工作,应用程序无需修改即可直接连接到...
在现今信息化时代的背景下,分布式数据库技术在构建网络教学平台中扮演了关键角色。分布式数据库系统诞生于20世纪70年代中期,旨在满足地理上分布的组织或团体在局部业务管理和全局系统管理上的需求。相较于集中式...
Amoeba是一种分布式数据库中间件,用于MySQL数据库的高可用性和负载均衡。它可以在多个MySQL主节点之间进行数据复制,并且可以动态地调整数据分片,以提高系统的读写性能和容错性。以下是使用Amoeba配置MySQL代理的...
"amoeba-mysql-binary" 是一个与MySQL数据库相关的开源项目,其主要功能是提供一种分布式解决方案,用于扩展MySQL服务器的能力,提升数据库的可扩展性和可用性。Amoeba这个名字来源于生物学中的变形虫,寓意该系统...
Amoeba实现了集中响应请求,依据事先设置的规则,将SQL请求发送到特定数据库上执行。可以实现数据库负载均衡、读写分离、高可用性等功能。 amoeba-mysql.zip压缩包内容: amoeba-mysql-3.0.5-RC-distribution.zip ...
在分布式数据库领域中,Amoeba作为分布式数据库代理开发框架,扮演着重要的角色。Amoeba致力于解决数据切分问题,以及客户端在处理分布式数据时的“集中式”问题。Amoeba对客户端是透明的,它位于客户端和数据库...
Amoeba是一种分布式数据库中间件,主要用于MySQL数据库的水平扩展。它通过分片(Sharding)技术将大型单一数据库拆分为多个较小的部分,称为分片,然后将这些分片分布到不同的服务器上。Amoeba在各个分片之间提供...