Amoeba搞定mysql主从读写分离
一、Amoeba 是什么
Amoeba(变形虫)项目,专注分布式数据库 proxy 开发。座落与Client、DB Server(s)
之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。
主要解决:
•降低数据切分带来的复杂多数据库结构
•提供切分规则并降低数据切分规则给应用带来的影响
•降低db 与客户端的连接数
•读写分离
二、为什么要用Amoeba
目前要实现mysql的主从读写分离,主要有以下几种方案:
通过程序实现,网上很多现成的代码,比较复杂,如果添加从服务器要更改多台服务器的代码。
通过mysql-proxy来实现,由于mysql-proxy的主从读写分离是通过lua脚本来实现,目前lua的脚本的开发跟不上节奏,而写没有完美的现成的脚本,因此导致用于生产环境的话风险比较大,据网上很多人说mysql-proxy的性能不高。
自己开发接口实现,这种方案门槛高,开发成本高,不是一般的小公司能承担得起。
利用阿里巴巴的开源项目Amoeba来实现,具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库,并且安装配置非常简单。国产的开源软件,应该支持,目前正在使用,不发表太多结论,一切等测试完再发表结论吧,哈哈!
三、快速架设amoeba,实现mysql主从读写分离
假设amoeba的前提条件:
Java SE 或以上 Amoeba ,。
支持Mysql 协议版本10(mysql )。
您的网络环境至少运行有一个mysql
1、首先介绍下我的实验环境。
System: CentOS release
Master mysql:
Slave mysql:
Amoeba server:
架构如如下所示:
我这里只用了一个从数据库!
2、安装配置mysql主从环境,mysql的安装省略,请自行编译或者用rpm安装
###在master mysql创建同步用户
grant replication slave,file on *.* to 'replication'@'' identified by '123456';
flush privileges;
####f的配置
log-bin=mysql-bin #打开mysql二进制日志
server-id = 1 #设置mysql_id,主从不能相同
binlog-do-db=test #设置二进制日志记录的库
binlog-ignore-db=mysql ##设置二进制日志不记录的库
sync_binlog=1
####f的配置
log-bin=mysql-bin
server-id = 2
replicate-do-db=test #设置同步的库
replicate-ignore-db=mysql #设置不同步的库
log-sla
amoeba搞定mysql主从读写分离 来自淘豆网m.daumloan.com转载请标明出处.