`

如何用 Amoeba 进行mysql数据库读写分离

阅读更多

http://terryzhang25.blog.163.com/blog/static/1823423132011218015481/

amoeba主要是针对数据切分方面、读写分离、负载均衡、故障恢复。
首先说明一下amoeba 跟 mysql proxy在读写分离的使用上面的区别。
在 mysql proxy 上面如果想要读写分离并且 读集群、写集群 机器比较多情况下,用mysql proxy 需要相当大的工作量,目前mysql proxy没有现成的 lua脚本。mysql proxy根本没有配置文件,lua脚本就是它的全部,当然lua是相当方便的。那么同样这种东西需要编写大量的脚本才能完成一个复杂的配置。 amoeba目标是走产品化这条路。只需要进行相关的配置就可以满足需求。
一、Master/Slave 结构读写分离: 
Master: server1 (可读写) 
slaves:server2、server3、server4(3个平等的数据库。只读/负载均衡) 
amoeba提供读写分离pool相关配置。并且提供负载均衡配置。 
可配置server2、server3、server4形成一个虚拟的 virtualSlave,该配置提供负载均衡、failOver、故障恢复功能 
Xml代码
  
<dbServer name="virtualSlave" virtual="true">  
    <poolConfig>  
        <className>com.meidusa.amoeba.server.MultipleServerPool</className>  
        <!-- 负载均衡参数 1=ROUNDROBIN , 2=WEIGHTBASED -->  
        <property name="loadbalance">1</property>  
                   
        <!-- 参与该pool负载均衡的poolName列表以逗号分割 -->  
        <property name="poolNames">server2,server3,server4</property>  
    </poolConfig>  
</dbServer>  

如果不启用数据切分,那么只需要配置QueryRouter属性 
wirtePool=server1 
readPool=virtualSlave 
<queryRouter>  
    <className>com.meidusa.amoeba.mysql.parser.MysqlQueryRouter</className>  
    <property name="LRUMapSize">1500</property>  
    <property name="defaultPool">server1</property>  
  
    <property name="writePool">server1</property>  
    <property name="readPool">virtualSlave</property>  
  
    <property name="needParse">true</property>  
</queryRouter>  

那么遇到update/insert/delete将 query语句发送到 wirtePool,将 select发送到 readPool机器中执行

分享到:
评论

相关推荐

    Amoeba搞定mysql主从读写分离

    MySQL的主从读写分离是数据库架构中一种常见的优化策略,它通过将读操作分散到多个从库上,减轻主库的压力,提高系统的并发处理能力。Amoeba是一款开源的MySQL中间件,专为实现主从读写分离而设计。在Java开发环境中...

    Amoeba+mysql 读写分离 Keepalived+mysql

    这里我们主要探讨的是如何使用Amoeba与MySQL实现读写分离,以及如何利用Keepalived来构建MySQL的高可用集群。这两部分内容对于保障数据库服务的稳定性和效率至关重要。 **Amoeba+MySQL 读写分离** Amoeba 是一个...

    MySQL搭建Amoeba_读写分离.docx

    在本文中,我们将详细介绍如何使用 Amoeba 实现 MySQL 读写分离的配置过程。Amoeba 是一个基于 MySQL 的 proxy,能够集中地响应应用的请求,并根据用户事先设置的规则,将 SQL 请求发送到特定的数据库上执行,从而...

    linux下mysql amoeba读写分离配置

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

    amoeba_mysql读写分离部署说明.docx

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

    数据库读写分离配置Amoeba和Mycat.docx

    ### 数据库读写分离配置Amoeba和Mycat #### 一、数据库读写分离概念及重要性 数据库读写分离是一种常见的数据库优化技术,主要用于提高系统的整体性能和扩展能力。随着业务量的增长,单一数据库往往难以承受大量的...

    使用amoeba搭建mysql读写分离

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

    详解如何利用amoeba(变形虫)实现mysql数据库读写分离

    MySQL数据库的读写分离是一种常见的优化策略,用于提高数据库系统的并发处理能力和响应速度。通过将读操作和写操作分配到不同的数据库实例上,可以减轻主库的压力,保证数据的一致性,同时提升读取性能。在众多实现...

    数据库读写分离中间件amoeba-n.tar.gz

    "amoeba-n.tar.gz"这个压缩包文件可能就是一款名为Amoeba的数据库读写分离中间件的版本。 Amoeba中间件是为了解决数据库扩展性问题而设计的,尤其是在关系型数据库如MySQL中。当单个数据库实例无法满足高并发读取...

    mysql读写分离实现

    MySQL的读写分离是一种常用的数据库优化技术,主要用于提高数据库系统的并发处理能力和可用性。它通过将数据查询(读操作)与数据更新(写操作)分布在不同的服务器上执行来达到这一目的。一个完整的MySQL读写分离...

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

    通过上述步骤,我们可以有效地利用mysql-proxy实现MySQL数据库的读写分离,从而提高系统的整体性能。需要注意的是,虽然mysql-proxy是一个非常有用的工具,但在实际应用过程中还需结合具体业务场景进行细致调优,以...

    amoeba-mysql-1.2.0-RC3.zip

    通过阅读README、配置build.properties和使用bin目录下的脚本,用户可以安装、配置并运行Amoeba,以实现其数据库读写分离的需求。同时,lib目录下的库文件和doc目录中的文档能提供必要的支持和指导。在实际部署和...

    Spring实现数据库读写分离代码

    在IT行业中,数据库读写分离是一种常见的优化策略,它能够有效地提高系统的并发处理能力和数据安全性。本示例中,我们关注的是如何利用Spring框架来实现这一功能,结合Spring MVC、Spring以及MyBatis,以及MySQL...

    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-...

    amoeba 读写分离 配置说明

    ### Amoeba 读写分离配置详解 #### 一、配置前的准备工作 为了实现数据库的读写分离,首先需要确保所有的服务器均处于同一局域网内,并且完成以下准备工作: 1. **主机A(Amoeba服务器)**: - 安装 Java SE 1.6 ...

    Centos 操作系统/ Windows 操作系统 安装 MySQL 、Amoeba 数据库集群 读写分离

    Mysql安装手则 ..................................... 3 一、 下载Mysql软件 .......................................... 3 二、 安装Mysql软件 .......................................... 4 三、 Mysql设置 ....

    mysql读写分离

    本文将详细介绍MySQL读写分离的概念、实现方式以及基于Amoeba的配置示例。 #### 二、MySQL 读写分离概述 **读写分离**是一种数据库优化手段,其核心思想是将数据的读取操作与写入操作分离到不同的服务器上执行。...

Global site tag (gtag.js) - Google Analytics