接上一篇mysql主从后,我们来部署一下mysql读写分离
部署环境:
centos:192.168.1.15 master
centos:192.168.1.14 slave
centos:192.168.1.13 amoeba代理服务端
先介绍下db读写架构,客户端连接mysql服务的时候,其实对接的是amoeba(变形虫)这个,再由amoeba把请求转发给mysql服务端,他会分辨,读操作分发给slave服务器,写操作分发给master服务端
由于主从已经搭建好了,现在介绍amoeba的搭建
第一步,先安装amoeba运行环境的jdk
先现在jdk1.8
然后配置系统环境变量
在/etc/profile文件下加入;
—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
export JAVA_HOME=/usr/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-____

JAVA_HOME java的安装目录

source /etc/profile //刷新环境
java -version 验证java
db分离,mysql读写分离部署![]

第二步安装amoeba,下面是我下载地址
https://zh.osdn.net/frs/g_redir.php?m=kent&f=amoeba%2FAmoeba+for+mysql%2F3.x%2Famoeba-mysql-3.0.5-RC-distribution.zip
下载好后解压
unzip amoeba-mysql-3.0.5-RC-distribution.zip
mv amoeba-mysql-3.0.5-RC-distribution amoeba 给改个名,如下图
db分离,mysql读写分离部署_第1张图片

配置amoeba启动脚本:
#!/bin/bash
export JAVA_HOME=/usr/jdk1.8
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
NAME=Amoeba
AMOEBA_BIN=/data/amoeba/bin/launcher
SHUTDOWN_BIN=/data/amoeba/bin/shutdown
PIDFILE=/data/amoeba/Amoeba-MySQL.pid
SCRIPTNAME=/etc/init.d/amoeba
case "$1" in
start)
echo -n "Starting $NAME... "
$AMOEBA_BIN
echo " done"
;;
stop)
echo -n "Stoping $NAME... "
$SHUTDOWN_BIN
echo " done"
;;
restart)
$SHUTDOWN_BIN
sleep 1
$AMOEBA_BIN
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart}"
exit 1
;;
esac

接下来修改amoeba配置:
对外服务,提供给客户端访问的配置 amoeba.xml
vim /data/amoeba/conf/amoeba.xml
db分离,mysql读写分离部署_第2张图片

db分离,mysql读写分离部署_第3张图片

8066 对外端口
appuser 对外客户端用户名
admin 对外客户端密码

然后配置amoeba连接mysql服务端的配置dbServers.xml
vim /data/amoeba/conf/dbServers.xml

db分离,mysql读写分离部署_第4张图片

db分离,mysql读写分离部署_第5张图片

slave1 从服务器池,如果有多个slave,可以写多个

配置好后,重启amoeba
/etc/init.d/amoeba restart

查看端口 8066启动即可
测试db读写分离是否正常,我们可以先关闭slave,然后在在客户端上面创建test库,test表
然后开启从库,在客户端查看test库,这里肯定查不到创建的test库,因为查看已经分发给slave了