amoeba实现MySQL读写分离(Centos 7)

MySQL读写分离能一定程度上缓解服务器压力,数据的写入速度远远赶不上读取的速度,一般是设置主从服务器,在主服务器上进行写入操作,在从服务器上进行读取操作。

读写分离目前有两种方式,一种是基于程序内部的代码来实现,也是就是在开发时直接将代码写死,另外一种是基于中间代理,也就是软件实现。这里运用到的是前阿里大佬陈思儒开发的amoeba。

前期准备:一台mysql主服务器,一台mysql从服务器,一台将被来用于中间代理的Centos 7。

实验配置

一.完成主从服务器的配置。

主从服务器配置可参考https://blog.csdn.net/W1264822267/article/details/127139505?spm=1001.2014.3001.5502

二.中间服务器配置

1.关闭防火墙或者防火墙允许8066端口(如果只是学习读写分离推荐关闭防火墙,实际运用推荐开启8066端口);

systemctl stop firewalld
#或者配置防火墙规则,开启8066端口
firewall-cmd --zone=public --add-port=tcp/8066

2.部署jdk,直接在root下上载需要安装的jdk包(此处使用jdk版本为1.6.0);

#给jdk包赋予执行权限
chmod +x jdk-6u14-linux-x64.bin
#执行jdk.bin(一路回车,最后yes同意)
./jdk-6u14-linux-x64.bin
#将执行后产生的jdk1.6.0_14移动并改名到/usr/local/jdk1.6
mv jdk1.6.0_14/ /usr/local/jdk1.6

3.安装amoeba,这里使用的是2.2.0版本。也可以去网站下载amoeba - Browse /Amoeba for mysql at SourceForge.net

#创建一个文件夹用来存放解压的amoeba文件
mkdir /usr/local/amoeba
#将amoeba压缩包解压到刚创建的文件夹中
tar -zxf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/

5.配置jkd和amoeba环境变量,在 /etc/profile 中直接写;

vim /etc/profile
#下面是需要添加的内容,在末尾添加保存就行
export JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

export AMOEBA_HOME=/usr/local/amoeba/
export PATH=$PATH:$AMOEBA_HOME/bin

将刚才的配置立即生效

source /etc/profile

6.执行/usr/local/amoeba/bin/amoeba,如果回显amoeba start|stop表示安装成功;

[root@localhost ~]# /usr/local/amoeba/bin/amoeba
amoeba start|stop

7.登录MySQL主服务器,给amoeba服务器授权;

grant all on *.* to 'amoebatest'@'amoeba服务器IP' identified by '密码';

8.修改amoeba主配置文件;

vim /usr/local/amoeba/conf/amoeba.xml
#第11行,amoeba服务器的默认监听端口,客户端在访问时需要使用此端口(在末行模式下使用:set number可显示行数)
<property name="port">8066</property> 
#第30行,客户端访问amoeba服务器所使用的用户名
<property name="user">amoeba</property>
#第32行,客户端访问amoeba服务器所使用的密码
<property name="password">123456</property>
#第115行,对数据库的默认操作,指定为主服务器
<property name="defaultPool">master</property>
#第118行,对数据库的写操作,指定为主服务器
<property name="writePool">master</property>
#第119行,对数据库的读操作,指定为从服务器,这里是一个集群名称
<property name="readPool">slave</property>
#将117行和120行的内容删除,原本是默认注释掉了118和119行的内容

9.修改dbServers.xml;

vim /usr/local/amoeba/conf/dbServers.xml
#第20行,表示amoeba去连接数据库的端口号
<property name="port">3306</property>
#第23行,表示客户机连接进去后的默认数据库
<property name="schema">数据库名</property>
#第26行,前面在主MySQL上授权的用户名
<property name="user">amoebatest</property>
#第29行,前面在主MySQL上授权的用户名密码(30行的内容移到到28行末尾)
<property name="password">密码</property>
#第45行,amoeba主配置文件中指定的写操作MySQL服务器名称
<dbServer name="master"  parent="abstractServer">
#第48行,写操作MySQL服务器的IP地址
<property name="ipAddress">主服务器IP</property>
#第52行,amoeba主配置文件中指定的读操作MySQL服务器名称
<dbServer name="slave"  parent="abstractServer">
#第55行,读操作MySQL服务器的IP地址
<property name="ipAddress">从服务器IP</property>
#因本次实验无从服务器集群,所以注释掉第59行到第67行的集群配置,也可删除

10.启动amoeba,用netstat -anpt查看是否有java的进程,有则表示成功;

/usr/local/amoeba/bin/amoeba start
[root@localhost ~]# netstat -anpt |grep java
tcp6       0      0 :::8066                 :::*                    LISTEN      12459/java          
tcp6       0      0 127.0.0.1:50228         :::*                    LISTEN      12459/java    

三.验证

此处用的是Navicat 15 for MySQL进行读写操作,用Wireshark抓包查看数据走向。

1.登录amoeba服务器;

2.在Navicat 15 for MySQL中进行读写操作,并用Wireshark抓包

主服务器IP:192.168.183.146

从服务器IP:192.168.183.150

amoebaIP:192.168.183.151

分析流量有的是从amoeba(151)到主服务器(146),即写入操作;有的是从服务器(150)到amoeba(151),即读取操作;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
事先声明 下载之前先看描述里面的目录 不然不要在那里吐槽 目录 ........................................................................CentOS 6.5安装部分................................................. 设备需求.................................................. 3 Mysql安装手则 ..................................... 3 一、 下载Mysql软件 .......................................... 3 二、 安装Mysql软件 .......................................... 4 三、 Mysql设置 .......................................... 6 Amoeba安装手则 ..........................................10 一、 下载Amoeba软件..........................................10 安装Amoeba ..........................................10 二、 安装Amoeba依耐关系 .......................................... 安装JDK ..........................................11 三、 配置Amoeba .................................................12 配置dbServers.xml 文件 ......................12 配置amoeba.xml文件 ......................................... 13 启动 Amoeba ...............................................14 ..............................Windows安装部分............... 设备需求 ............................................................................................................................................................................. 16 Mysql安装手则 ..................................................................................................................................................................... 16 一、 下载Mysql软件 .................. 16 二、 Mysql设置 ........................ 17 Amoeba安装手则 ......................19 一、 下载Amoeba软件 ......................................19 二、 安装Amoeba依耐关系 ...............................20 安装JDK ............................................ 20 配置环境变量 ........................... 20 三、 配置Amoeba .............................................. 22 配置dbServers.xml 文件 ............................ 22 配置amoeba.xml文件 ..................... 24 启动 Amoeba ............................... 24

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值