使用amoeba实现数据分割mysql读写分离

(3)使用amoeba实现数据分割,更高层次的读写分离

继续从上面的使用amoeba实现读写分离已配置的的再进行配置:

(client,proxy,two master,two slave服务器 至少6台虚拟机)

 

    水平分割:将关键字段按特定的算法存放到不同的服务器
    垂直分割:将数据按业务的不同分别保存到不同的服务器  

  水平分割 

   # cd /usr/local/amoeba/conf/

  # vim rule.xml

                                    #sxjy数据库下的stu表             #看上图 可知master1,2是水平分割

  <tableRule name="stu" schema="sxjy" defaultPools="master1,master2">
      <rule name="rule1">
        <parameters>id</parameters>
        <expression><![CDATA[ id % 2 == 0 ]]></expression>
        <defaultPools>master1</defaultPools>
        <readPools>slave1</readPools>
        <writePools>master1</writePools>
      </rule>
                
      <rule name="rule2">
        <parameters>id</parameters>
        <expression><![CDATA[ id % 2 == 1 ]]></expression>
        <defaultPools>master2</defaultPools>
        <writePools>master2</writePools>
        <readPools>slave2</readPools>
      </rule>
  </tableRule>
 
  垂直分割
  <tableRUle name="user_info" schema="blog" defaultPools="master1" />
  <tableRUle name="user_info" schema="webchat" defaultPools="master2" />

时间: 2024-08-02 23:22:09

使用amoeba实现数据分割mysql读写分离的相关文章

mysql数据业务垂直+水平分割+主从复制读写分离

友情提示:本人第一次写技术博客,会继续完善,尽量做到图文并茂,通俗易懂,如果有什么写的不好的地方,还请大家多多提意见,您的意见将是我宝贵的资源.如果有兴趣的话,还可以一起讨论相关技术哦,亲!一定要注意软件版本哦! 联系方式 QQ:794884160 指导老师:双星  冯德勇老师  曾勇老师 一.拓扑图: 垂直+水平分割+主从复制+读写分离完整原理图: 仅说明原理,详细拓扑及参数参考本次实验拓扑图 本次试验拓扑图:(上图左侧部分) 二.实验描述: 根据业务原型先进行数据库垂直切割,然后用户数据根据

使用Amoeba实现mysql读写分离机制

Amoeba的实用指南 http://docs.hexnova.com/amoeba/ 如何实现mysql读写分离 : 通常来说有两种方式: 1,应用程序层实现 2,中间件层实现 应用层实现 应用层实现是指在应用程序内部及连接器中实现读写分离. 例如: com.mysql.jdbc.replicationdriver mysqlnd_ms 优点: 程序内部实现读写分离,安装即可使用 减少部署难度. 访问压力在一定级别以下,性能很好. 缺点: 架构一旦调整,代码要更这变, 不够灵活. 难以实现高级

keepalived+amoeba+mysql-mmm+mysql实现mysql读写分离及高可用

最近尝试了一下mysql的读写分离和高可用的搭建.搭好之后体验了一下,效果还不错.这里跟大家分享一下. 1.首先介绍一下mysql-mmm这个工具是干嘛使的? 众所周知,mysql自身提供了AB复制.我们也可以很轻松的实现master-master双向复制,同时再为其中的一个master节点搭建一个slave库.这样就实现了master1与master2之间的双向复制,同时master1与slave1之间主从复制这样的架构.这样整个体系中就存在两个master,正常情况下只有一个master对外

MySQL 读写分离 (基于Amoeba)

一.MySQL读写分离原理 主数据库处理事务性查询,从数据库处理select查询.数据库复制用来把事务性查询导致的变更同步到从数据库中. 二.最为常见的读写分离有两种: 1.基于程序代码实现 在代码中根据select,insert进程路由分类: 优点:性能好,因为在代码中实现,不需要额外的硬件设备: 缺点:需要开发人员来实现,对代码改动比较大,不适合大型复杂应用: 2.基于代理层实现 MySQL-Proxy:隶属于MySQL开源项目: Amoeba:Amoeba是一个以MySQL为底层数据存储,

Amoeba实现Mysql读写分离部署文档

以下所有理解纯属个人理解,如若有误欢迎指出,不胜感激--o(∩_∩)o 两台服务器配置MYSQL主从复制实现数据高可用,这时读与写操作都有由master服务器来完成的,而从服务器只是复制了mster服务器的数据,这时可以利用一台服务器配置Amoeba实现mysql读写分离, master负责写,slave负责读取,当然 也可以有多个salve-- 从而减轻master服务器的压力,实现负载分摊: 拓扑图: Mysql主从复制原理: 两台mysql服务器一个作为master一个为slave:mas

使用amoeba实现mysql读写分离

使用amoeba实现mysql读写分离 amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy.它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行.基于此可以实现负载均衡.读写分离.高可用性等需求.与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便 amoeba使用java所研发,但是amoeba不支持分布式事物(据说现在最新版本已经支持事物),如果用到分布式事物的话不建议使用amoeba. mys

利用amoeba实现mysql读写分离

参考: http://my.oschina.net/u/1169079/blog/390726 http://douya.blog.51cto.com/6173221/1607493 一 安装环境: 三台centos6.7 64位的系统 192.168.127.130   从数据库 192.168.127.131   主数据库 192.168.127.134  amoeba 二 安装过程 (下面的1-3的所以操作都在amoeba服务器上面) 1 首先安装jdk环境,下载,安装,设置环境变量 vi

amoeba安装与实现amoeba for mysql读写分离

运行环境 l  CentOS6.3 l  Jdk1.6.0_30 l  amoeba-mysql-binary-2.2.0 l  amoeba:192.168.88.17 l  master1:192.168.88.10 l  slave1:192.168.88.11 一: 安装jdk1.5以上版本 1.1    卸载centos服务器自带版本jdk 1.1.1          查看服务器自带jdk版本号 [[email protected] ~]# java –version 1.1.2 查

Amoeba实现Mysql读写分离

环境规划 Amoeba读写分离器 172.16.254.144/16 Mysql服务器(master) 172.16.254.150/16 Mysql服务器(slave) 172.16.254.151/16 一.先实现mysql主从复制,在master上使用yum安装mysql [[email protected] mysql]# yum -y install mysql mysql-server 启用二进制日志,编辑/etc/my.cnf在[mysqld]下添加如下行: log-bin = /