Amoeba实现mysql读写分离

因为之前做的drbd+mysql+Heartbeat。感觉高可用做的不够彻底。就了解下Amoeba。


  • 文档地址:http://docs.hexnova.com/amoeba/index.html

下载:http://sourceforge.net/projects/amoeba/files/

 

  • Amoeba功能:代理。

Amoeba for MySQL致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当query 路由功能,专注分布式数据库 proxy 开发。座落与ClientDB Server(s)之间。对客户端透明。具有负载均衡、高可用性、Query过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。Amoeba上面你能够完成多数据源的高可用、负载均衡、数据切片的功能。目前在很多企业的生产线上面使用。

  • Amoeba for Mysql MySQL Proxy比较

MySQL proxy 6.0版本 上面如果想要读写分离并且 读集群、写集群 机器比较多情况下,用mysql proxy需要相当大的工作量,目前mysql proxy没有现成的 lua脚本。mysql proxy根本没有配置文件, lua脚本就是它的全部,当然lua是相当方便的。那么同样这种东西需要编写大量的脚本才能完成一个复杂的配置。而Amoeba for Mysql只需要进行相关的配置就可以满足需求。

wKioL1Wxyv7RhK0vAAKt0tvUXlY858.jpg 

  • 安装:

Jdk环境搭建:运行jdk-6u26-linux-i586.bin
设环境变量:[root@server4~]# tail /etc/profile
exportJAVA_HOME=/usr/java/jdk1.6
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
  • 读写分离配置:

     a. 配服务器资源vim dbServers.xml

wKioL1WxyxfDcjIyAARo9oPGfa4906.jpg

 b. 配置读写分离规则:vim conf/amoeba.xml


wKioL1Wxyz-BefgDAALNVYqVujI314.jpg

wKiom1WxyV7w8fSCAADQ935jt7I174.jpg

  • 启动测试:

[root@server4 bin]#amoeba  start

 测试的时候我的Mysql主从刚好没有同步,这样测试的时候.写在Master,读在SLAVE。就比较容易看出来!


你可能感兴趣的:(amoeba)