`

如何用 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数据库读写分离

    amoeba是阿里开发的一款数据库读写分离的项目(读写分离只是它的一个小功能),由于是基于java编写的,所以运行环境需要安装jdk; 前期准备工作: 1.两个数据库,一主一从,主从同步; master: 172.22.10.237:3306 ...

    amoeba-mysql-3.0.5-RC.tar.gz

    amoeba-mysql-3.0.5-RC.tar.gz数据库读写分离,linux版本

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

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

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

    Amoeba:分布式数据库Proxy解决方案

    提供mysql数据库读写分离的最佳方案 减轻mysql数据库压力,使用分布式数据库。为企业提供最佳解决方案。

    windows平台用amoeba实现读写分离

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

    Amoeba for mysql

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

    amoeba-mysql-3.0.4-BETA.tar.gz 实现集群管理 读写分离

    Amoeba主要解决以下问题: a). 数据切分后复杂数据源整合 b). 提供数据切分规则并降低数据切分规则给数据库带来的影响 c). 降低数据库与客户端连接 d). 读写分离路由 通过Amoeba实现读写分离

    MySQL读写分离架构与实践--mysql-proxy

    MySQL主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy/Amoeba)来提升数据库的并发负载能力 这样的方案来进行部署与实施的

    mysql读写分离实现.doc

    使用场景及目标:当数据库访问并发量非常大,性能急剧下降时,先进行读写分离。通过本次案例实战,掌握mysql读写分离的基本原理和实战操作手法,结合案例的代码和配置,能快速轻松上手的解决读写分离的问题。

    amoeba-mysql-binary-2.2.0.tar.gz

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

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

    springmvc+spring+mybatis+MySQL

    数据库代理 “变形虫”---amoeba

    与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua脚本的MySQL Proxy简单)。  Amoeba相当于一个SQL请求的路由器,目的是为负载均衡、读写分离、...

    amoeba分布式数据库解决方案

    Amoeba在分布式数据库领域将致力解决数据切分,应付客户端“集中式”处理分布式数据。这 儿集中式是一个相对概念,客户端不需要知道某种数据的物理存储地。避免这种逻辑出现在业务端, 大大简化了客户端操作分布式...

    amoeba-mysql-1.0.2-BETA.zip_SQL 高并发_mysql-proxy java_代理_分布式java_

    Amoeba属于分布式数据库代理开发框架,专注于分布式数据库 proxy 开发。座落与Client、DB Server(s)...具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请 求多台数据库合并结果。

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    05-mysql数据库读写分离介绍及企业生产实现方案.avi 06-根据企业业务拆分业务应用到不同的从库思想.avi 07-mysql主从复制原理画图深入浅出讲解.avi 08-mysql主从复制实战01.avi 09-mysql主从复制实战02.avi 10-主从...

    非常详细的某培训机构mysql学习笔记

    MySQL数据库操作 MySQL数据类型 MySQL存储引擎 MySQL表操作 MySQL2 MySQL数据操作 MySQL单表查询 MySQL多表查询 MySQL索引 MySQL视图 MySQL触发器 MySQL存储过程与函数 MySQL3 MySQL安全机制 MySQL...

    amoeba.doc

    amoeba,提高mysql高可用,高并发,实现主从数据库同步,通过读写分离的方式提高数据库的并发负载能力

    数据库中间件MyCat的介绍

    单纯的读写分离,此时配置最为简单,支持读写分离,主从切换 2. 分表分库,对于超过 1000 万的表进行分片,最大支持 1000 亿的单表分片 3. 多租户应用,每个应用一个库,但应用程序只连接 Mycat,从而不改造程序...

Global site tag (gtag.js) - Google Analytics