Amoeba-mysql读写分离实战
Amoeba用途有很多,这里看标题我们就先说读写分离,因为我也只会这个。Amoeba定义为国内的,开源的。目前(2015年10月20日)我们用amoeba2.2版本来做。
Keepalived那个先不说。
Mysql 5.6
Centos 6.4
Mysql一主两从已OK。
Amoeba 2.2.x
主从我就不讲了,网上N多资料。
Amoeba下载地址:http://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/
由于Amoeba需要用到jave se 所以我们需要安装jdk环境。
最新的1.8 可用。
安装jdk:
rpm -ivh jdk-8u60-linux-x64.rpm
source /etc/profile
验证jdk:
Jdk就完事了,现在开始amoeba的安装。
先创建目录文件
Mkdir /usr/local/amoeba
在将下载文件复制到刚刚创建的目录,然后解压。
然后我们进入conf文件,这里的xml为储存amoeba设置连接mysql的数据
在amoeba目录下,输入
./bin/amoeba
如果出现说明amoeba安装OK,
接下来设置amoeba的参数,设置参数的文件在conf目录下的amoeba.xml和dbServers.xml两个文件。
先看 dbServiers.xml
grant all on *.* to root@'192.168.0.191' identified by "123456";这条命令是需要在客户端运行的,让amoeba调度器能够连接我们的数据库并做操作
这个dbServers.xml就设置到这里
接下来看amoeba.xml
配置完成后保存。
然后启用amoeba
/usr/local/amoeba/bin/amoeba & &表示在后台运行
用ps –ef |grepamoeba 看一下是否启动
在windows 客户端验证是否可以登录amoeba上;
这样就表示登录成功。
=======================================================================
接下来就是验证读写分离了
在停掉主从之前先在主上创建一个表名为create database jdtable;
然后进入库 use jdtable;
创建一个表 createtable dashen (id int(10) ,name varchar(10),address varchar(20));
然后在看从上是否同步。
同步之后关掉主从 stopslave;
开始验证。
我们在第一个从上也就是 187插入一条语句:
insert into dashen values('1','syw','slave-187');
在另外一个从上也插入一条语句:
insert into dashen values('2','syw','slave-188'); 虽然IP是190
然后我们用windows登陆amoeba这个调度器
使用select *from jdtable.dashen;来查询,看一下amoeba会调用之前amoeba.xml这里面的Slavepool这个模块的循环,也可以说是负载均衡。Slave1 查询一次,slave2查询两次。
在amoeba上插入一条数据时候,amoeba也会根据amoeba.xml里面配置写的模块来写入相应的数据库中。
====================================================================================
测试完毕!
by:shiyiwen.请勿转载