Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba forMysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发。
Amoeba for MySQL致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当query 路由功能,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、Query过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。 在Amoeba上面你能够完成多数据源的高可用、负载均衡、数据切片的功能。
Amoeba主要解决:
• 降低 数据切分带来的复杂多数据库结构
• 提供切分规则并降低 数据切分规则 给应用带来的影响
• 降低db 与客户端的连接数
• 读写分离
切分(Sharding)并不是特定数据库产品所附属的功能,而是在具体技术细节之上的抽象处理。是水平扩展(Scale Out)的解决方案,主要目的是解决单节点数据库服务器的能力限制,以及整个应用其架构的可扩展性(Scalability)。
切分主要有两种方式:水平切分(Horizental Sharding)和垂直切分(Vertical Sharding)。水平切分所指的是通过一系列的切分规则将数据水平分布到不同的DB或table中,在通过相应的DB路由 或者table路由规则找到需要查询的具体的DB或者table以进行Query操作,比如根据用户ID将用户表切分到多台数据库上。垂直切分指的是按业务、产品切分,将不同类型的数据且分到不同的服务器上,通过数据库代理疏通程序与多个数据库的通讯、降低应用的复杂度。
读写分离简单的说是把对数据库读和写的操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻io压力。主数据库提供写操作,从数据库提供读操作,这样既避免了主数据库服务器(Master)的过载,也有效地利用了从数据库服务器(Slave)的资源。
那么Amoeba for mysql 对客户端程序来它是一个虚拟的mysql,对外提供mysql协议。客户端连接amoeba就象连接mysql一样。在amoeba内部需要配置相关的认证属性。
Amoeba不能做什么?
•目前还不支持事务
•暂时不支持存储过程(近期会支持)
•不适合从amoeba导数据的场景或者对大数据量查询的query并不合适(比如一次请求返回10w以上甚至更多数据的场合)
•暂时不支持分库分表,amoeba目前只做到分数据库实例,每个被切分的节点需要保持库表结构一致
相关推荐
Amoeba for MySQL致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当query 路由功能,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性...
Amoeba for MySQL与其他MySQL代理如MySQL Proxy相比,提供了更丰富的特性,如自动故障转移、负载均衡策略等,同时保持了较低的学习曲线,用户可以根据已有Amoeba产品的经验快速上手其他版本。 总的来说,Amoeba是一...
wget http://nchc.dl.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/2.x/amoeba-mysql-binary-2.1.0-RC5.tar.gz tar xvf amoeba-mysql-binary-2.1.0-RC5.tar.gz ``` 2.3 配置与启动 配置 Amoeba 的主要步骤...
标题中的"amoeba-aladdin-0.5.zip_Amoeba for Aladdin_MYSQL_aladdin_amoeba"揭示了这是一个关于Amoeba与Aladdin在MySQL集群环境中的整合应用。Amoeba是一个分布式数据库中间件,它能将一个单一的MySQL数据库实例...
wget http://nchc.dl.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/2.x/amoeba-mysql-binary-2.1.0-RC5.tar.gz ``` 下载完成后,我们需要创建一个文件夹,在 `/usr/local/amoeba` 目录下,执行以下命令: `...
- **Amoeba for MySQL**: 针对MySQL数据库的定制版本,提供了与MySQL原生API兼容的接口。 - **Amoeba for Aladdin**: 适用于特定业务场景下的数据库代理服务。 - **Amoeba for MongoDB**: 专门针对MongoDB数据库的...
Amoeba的高级使用包括如何快速配置Amoeba for MySQL,启动Amoeba服务,以及为数据库服务器创建负载均衡、数据切分和读写分离。此外,Amoeba还支持对已有实例进行性能调优,并提供了API和开发指南,以便开发者可以...
这是针对amoeba for mysql的一个具体案例,实现水平切分和读写分离
在本文中,我们将深入探讨数据库优化的各种策略和技术,以及如何通过Amoeba for MySQL中间层代理和分布式数据库架构实现负载均衡。 首先,数据库优化是一个多层面的过程,包括SQL查询优化、索引管理、存储引擎的...
- **常用中间件**:Mycat、mysql-proxy、Amoeba for MySQL等。 #### 七、基于Spring AOP的应用层实现 通过集成Spring框架的AOP功能,可以在不修改业务代码的情况下实现动态的数据源切换。例如,在进入Service层...
- **Amoeba for MySQL**:这是另一个流行的中间件解决方案,提供了更为丰富的特性和更灵活的配置选项。 #### 五、Spring 基于应用层实现 在 Spring 框架中,我们可以利用 AOP(面向切面编程)技术来实现读写分离。...
使用中间件如MySQL Proxy或Amoeba for MySQL,可以实现透明化的读写分离,简化应用程序的开发。 定时备份是保障数据安全的重要步骤。可以通过mysqldump工具定期备份整个数据库或特定表,例如在Windows环境下,可以...
- 支持Galera for MySQL集群,提供高可用性数据分片。 - 自动故障切换,确保系统稳定。 - 实现读写分离,支持多种主从模式。 - 全局表设计,简化表关联查询。 - 基于E-R关系的分片策略,提高查询效率。 - 支持多平台...