【MySQL 基于Amoeba读写分离】

文章介绍了读写分离的概念,通过主从复制提升数据库性能。重点讲解了Amoeba这一基于Java的中间代理层实现MySQL读写分离的方案,包括安装Java环境、配置Amoeba以及验证读写分离和负载均衡的效果。
摘要由CSDN通过智能技术生成

目录

一、读写分离是什么?

二、常见的MySQL读写分离方案

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

2.基于中间代理层实现

3.Amoeba

三、分离步骤

1.在主机Amoeba上安装java环境

2.安装并配置Amoeba

3.配置Amoeba读写分离,两个Slave读负载均衡

4.测试

4.1 在Client上进行访问测试

4.2 通过代理访问MySQL

四、验证

1.主服务器操作

2.分别在两台从服务器上操作

3.主从服务器添加

4.操作验证 - 读(负载均衡)

4.1 在测试机上第1次查询结果

4.2 在测试机上第2次查询结果

4.3 在测试机上第3次查询结果

5.操作验证 - 写(读写分离)


一、读写分离是什么?

  •         在实际的生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是安全性,高可用还是并发等各个方面都不能完全满足实际需求的,因此一般来说都是通过主从复制的方式来同步数据,再通过读写分离来提供数据的高并发负载能力这样的方案来进行部署。
  •         简单来说,读写分离就是只在主服务器上写,只在从服务器上读,基本的原理是让主数据库处理事务性查询,而从数据库处理select查询,数据库复制被用来把事务性查询导致的改变更新同步到集群中的从数据库。

二、常见的MySQL读写分离方案

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

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

2.基于中间代理层实现

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

  •         mysql-proxy为mysql开发早期开源项目,通过其自带的lua脚本进行SQL判断,虽然是mysql的官方产品,但是mysql官方不建议将其应用到生产环境。
  •         Amoeba(变形虫)该程序由java语言及逆行开发,阿里巴巴将其应用于生产环境,它不支持事物和存储过程。

  • 3.Amoeba

    •         Amoeba(变形虫)项目开源框架于2008年发布一款Amoeba for mysql软件,这个软件致力于mysql的分布式数据库前端代理层,主要为应用层访问mysql的时候充当SQL路由功能,并具有负载均衡,高可用性,SQL过滤,读写分离,可路由到相关的目标数据库,可并发请求多台数据库,通过Amoeba能够完成多数据源的高可用,负载均衡,数据切片的功能,目前Amoeba已经在很多企业的生产线上使用。

    • 三、分离步骤

    • 1.在主机Amoeba上安装java环境

    • 查看现有Java环境
    • java -version
    • 移除过高版本Java
    • which java
    • rm -rf /usr/bin/java
  • chmod +x jdk-6u14-linux-x64.bin
  • ./jdk-6u14-linux-x64.bin

  • mv jdk1.6.0_31/ /usr/local/jdk1.6

  • vim /etc/profile

        export JAVA_HOME=/usr/local/jdk1.6
     

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值