Linux命令大主从复制与读写分离技术实例(二)读写分离
2
系统版本:CentOS 6.5 MySQL版本:mysql-5.5.38 Amoeba版本:amoeba-mysql-binary-2.2.0
JDK版本:jdk-6u14-linux-x64.bin
案例拓扑图:
案例环境:
搭建MySQL的读写分离
一、搭建MySQL读写分离之前需要先完成MySQL的主从复制,主从复制的相关操作可以参考:《MySQL的主从复制与读写分离技术实例(一)主从复制》
二、安装Amoeba软件
Amoeba这个软件致力于MySQL的分布式数据库前端代理层,主要为应用层访问MySQL时充当SQL路由功能,并具有负载均衡、高可用性、SQL过滤、读写分离等功能。Amoeba是基于jdk1.5开发的,需要应用到Java环境中,并且建议使用jdk1.5或jdk1.6的版本搭建,我这里软件已经准备好了
1.在Amoeba服务器上安装Java环境
2.将jdk安装目录移动到/usr/local/jdk1.6,并在全局变量中添加如下配置项,指定jdk安装目录、类路径、Amoeba安装目录
3.刷新环境变量,并查看刚刚安装的java版本
Jave环境配置成功
4.安装Amoeba软件,注意全局变量中已经指定好Amoeba安装目录,直接解压到此目录即可
三、配置Amoeba服务器,实现MySQL的读写分离和两个Slave服务器的负载均衡
1.在三台MySQL服务器上分别开放权限给Amoeba访问,这里用Master说明
2.修改Amoeba服务器的代理配置文件amoeba.xml,修改以下红方框中的内容:
3.修改Amoeba服务器对后端MySQL做配置的dbServers.xml文件,同样修改以下红方框的内容:
4.修改好以后,启动Amoeba执行后台运行,默认端口号tcp的“8066”,注意防火墙
四、测试
1.用客户机通过amoeba代理服务器访问MySQL
2.在Master上创建一个表,然后同步到各从服务器上
同步完成后关闭两台从服务器的同步功能
3.在主服务器Master上向表中添加内容
在从服务器Slave1和Slave2分别插入下面内容
Slave1:
Slave2:
4.测试从服务器的负载均衡,用客户机进行读操作
5.测试读写分离,在客户机上进行写操作,然后用客户端是查询不到刚刚写入的内容的
只有在Master主服务器上才能查询到,这也说明写操作是在Master上进行的,也就实现了读写分离