Amoeba-mysql读写分离实战

         Amoeba用途有很多,这里看标题我们就先说读写分离,因为我也只会这个。Amoeba定义为国内的,开源的。目前(20151020日)我们用amoeba2.2版本来做。

先说一下本人环境:Amoeba-mysql主从+读写分离实战+测试_mysql主从 mysql读写分离 am

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

Amoeba-mysql主从+读写分离实战+测试_mysql主从 mysql读写分离 am_02

source /etc/profile

验证jdk

 Amoeba-mysql主从+读写分离实战+测试_mysql主从 mysql读写分离 am_03

Jdk就完事了,现在开始amoeba的安装。

 

先创建目录文件

Mkdir /usr/local/amoeba

在将下载文件复制到刚刚创建的目录,然后解压。

Amoeba-mysql主从+读写分离实战+测试_mysql主从 mysql读写分离 am_04

然后我们进入conf文件,这里的xml为储存amoeba设置连接mysql的数据

amoeba目录下,输入

./bin/amoeba

Amoeba-mysql主从+读写分离实战+测试_mysql主从 mysql读写分离 am_05

如果出现说明amoeba安装OK

 

接下来设置amoeba的参数,设置参数的文件在conf目录下的amoeba.xmldbServers.xml两个文件。

先看 dbServiers.xml

Amoeba-mysql主从+读写分离实战+测试_mysql主从 mysql读写分离 am_06

grant all on *.* to root@'192.168.0.191' identified by "123456";这条命令是需要在客户端运行的,让amoeba调度器能够连接我们的数据库并做操作

Amoeba-mysql主从+读写分离实战+测试_mysql主从 mysql读写分离 am_07

这个dbServers.xml就设置到这里

 

 

接下来看amoeba.xml

 Amoeba-mysql主从+读写分离实战+测试_mysql主从 mysql读写分离 am_08Amoeba-mysql主从+读写分离实战+测试_mysql主从 mysql读写分离 am_09

 

配置完成后保存。

然后启用amoeba

/usr/local/amoeba/bin/amoeba &       &表示在后台运行

ps –ef |grepamoeba 看一下是否启动

 

 

 

     windows 客户端验证是否可以登录amoeba上;

Amoeba-mysql主从+读写分离实战+测试_mysql主从 mysql读写分离 am_10

这样就表示登录成功。

 Amoeba-mysql主从+读写分离实战+测试_mysql主从 mysql读写分离 am_11

 

 

 

 =======================================================================

接下来就是验证读写分离了

 

在停掉主从之前先在主上创建一个表名为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');          虽然IP190

 

然后我们用windows登陆amoeba这个调度器

使用select *from jdtable.dashen;来查询,看一下amoeba会调用之前amoeba.xml这里面的Slavepool这个模块的循环,也可以说是负载均衡。Slave1 查询一次,slave2查询两次。

Amoeba-mysql主从+读写分离实战+测试_mysql主从 mysql读写分离 am_12

amoeba上插入一条数据时候,amoeba也会根据amoeba.xml里面配置写的模块来写入相应的数据库中。

==================================================================================== 

                                                                           测试完毕! 

                                                by:shiyiwen.请勿转载