接上一篇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 ![]

第二步安装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 给改个名,如下图

配置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

<property name="port">8066</property> 对外端口 <property name="user">appuser</property> 对外客户端用户名 <property name="password">admin</property> 对外客户端密码

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

<property name="poolNames">slave1</property> 从服务器池,如果有多个slave,可以写多个

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

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