mysql amoeba_MySQL基于Amoeba实现读写分离

读写分离应用分析:

在企业用户中,在大量的数据请求下,单台数据库将无法承担所有读写操作。解决方法:

配置多台数据库服务器以实现主从复制+读写分离。

c2d251a34ed3d89e97e016689a6e7246.png

1、基于程序代码内部实现

在代码中根据select、 insert 进行路由分类,这种方法目前生产环境中应用最广泛。优点是性能较好,因为在程序代码中实现,不需要增加额外的设备作为硬件开支。缺点是需要开发人员能来实现,运维人员无从下手。

2、基于中间代理层实现

代理一般位于客户端和服务器之间,代理服务器接到客户端请求后通过判断后转发到后端数据库。

常见的代理服务器:

MySQL-Proxy

Amoeba

实验环境:

amoeba: 192.168.200.114

master:192.168.200.111

slave1:192.168.200.112

slave2:192.168.200.113

client:192.168.200.123

前提是主从服务器支持主从复制

配置amoeba服务器:

1.安装amoeba软件

准备好jdk-6u14-linux-x64.bin文件

2.给与该文件执行权限

chmod +x jdk-6u14-linux-x64.bin

3.执行该文件

./jdk-6u14-linux-x64.bin

执行后会进入阅读模式,一直按回车,提示是否安装是输入yes

4.将文件移动

mv jdk1.6.0_14/ /usr/local/jdk1.6

5.修改配置文件

vim /etc/profile

在最后末行添加以下信息:

export JAVA_HOME=/usr/local/jdk1.6

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$HOME/bin

export AMOEBA_HOME=/usr/local/amoeba

export PATH=$PATH:$AMOEBA_HOME/bin

6.查看java版本信息(不建议安装1.7以上的版本,推荐使用1.6及以下)

java -version

fb80bb05a82baf509d82b950b485f32d.png

显示1.7的版本

7.删除java文件

rm -rf /usr/bin/java

8.重新加载文件信息

source /etc/profile

9.再次查看版本信息

java -version

d48cbe1436cbe542108b19a1850794a2.png

10.安装配置amoeba

事先准备amoeba包

amoeba-mysql-binary-2.2.0.tar.gz

11创建文件目录

mkdir /usr/local/amoeba

解包:

tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/

12.给与755的权限

chmod -R 755 /usr/local/amoeba/

13.执行amoeba

/usr/local/amoeba/bin/amoeba

98d1f2c981d3c8ea36b597547e435067.png

#出现amoeba start|stop证明配置没有问题

在MySQL数据库服务器上对amoeba授权:

1.在每一台服务器上登录数据库执行:

grant all on *.* to 'admin'@'192.168.200.%'identified by'123123';

2.刷新授权表:

flush privileges;

在amoeba服务器上编辑amoeba.xml配置文件,设置读写分离:

cd /usr/local/amoeba/conf/

cp amoeba.xml amoeba.xml.origin

vim amoeba.xml

afeed553b879fd7cc51d68f33091ce04.png

设置一个用户,后面的客户端访问时使用

f30e4fd5a745a4a54fea49218d350550.png

设置登录密码

88479fd81ef9009e15e4923e5b2f03da.png

将注释去掉,设置默认的服务器池||写服务器池||读服务器池

在amoeba服务器上编辑配置文件,设置登录MySQL服务器的用户及密码、MySQL服务器节点的IP地址、负载均衡的算法:

cd /usr/local/amoeba/conf/

cp dbServers.xml dbServers.xml.origin

vim dbServers.xml

cc3afc5b7504202ebaa21759ce9faff6.png

默认端口为3306,设置访问MySQL数据库的所用的用户名和密码

3566608b7995f1c9e8f783b04c5f40c9.png

依次为:主MySQL服务器的名称和IP地址

从MySQL服务器1的名称和IP地址

从MySQL服务器2的名称和IP地址

与主从MySQL服务器对应

9e60e42bb413e347d3dc7be52a5c52e7.png

设置readpool

b5b96a084ae176791df8ad545d60cb9d.png

负载均衡算法值为1,轮询算法

2ddb672fb0068034044a702fcee0097d.png

前面定义的服务器节点名

测试环境:

启动amoeba

1.检查配置是否出错

/usr/local/amoeba/bin/amoeba

amoeba start|stop表示没出错

2.起服务

/usr/local/amoeba/bin/amoeba &

3.检查端口8066

netstat -lnpt|grep java

791ce720d0b72ba060a9ce73f0121041.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值