MySQL数据库集群实战———MySQL数据库的读写分离(MySQL-proxy、)

本文介绍了MySQL数据库的读写分离技术,包括为何实施读写分离、如何利用MySQL-proxy实现读写分离的详细步骤,以及MySQL-proxy在实际应用中遇到的问题。此外,还提及了MySQL-Amoeba作为替代方案的优势和安装简介。
摘要由CSDN通过智能技术生成

一、MySQL读写分离

Mysql的主从复制和Mysql的读写分离两者有着紧密联系,首先部署主从复制,只有主从复制完了,才能在此基础上进行数据的读写分离。Master数据库处理事务性增、删除、修改、更新操作(CREATE、INSERT、UPDATE、DELETE),而让Slave数据库处理SELECT操作,MYSQL读写分离前提是基于MYSQL主从复制,这样可以保证在Master上修改数据,Slave同步之后,WEB应用可以读取到Slave端的数据。 简单来说,读写分离就是只在主服务器上写,只在从服务器上读,基本的原理是让主数据库处理事务性查询,而从数据库处理select查询,数据库复制被用来把事务性查询导致的改变更新同步到集群中的从数据库。

在这里插入图片描述

  • 基于中间代理层实现

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

(1)mysql-proxy 为mysql开源项目,通过其自带的lua脚本进行SQL判断,虽然是mysql的官方产品,但是mysql官方不建议将其应用到生产环境

(2)Amoeba (变形虫)由陈思儒开发,曾就职与阿里巴巴,该程序由java语言进行开发,阿里巴巴将其应用于生成环境,它不支持事物和存储过程

  • 如果业务压力不是很大的时候要做读写分离,取决于硬盘读取的性能,客户才满意,读库(配置低),写库(配置高:固态硬盘,高速存储)

二、MySQL-proxy实现读写分离

实验环境:基于gtid的异步复制(主从复制),再开一台server3(ip=172.25.7.3)做proxy,相当于代理

在server3上
1、解压mysql-proxy的tar包到/usr/local:tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local
在这里插入图片描述

2、进入到/usr/local,创建软链接,便于访问 ln -s mysql-proxy-0.8.5-linux-el6-x86-64bit/ mysql-proxy
进入到/usr/local/mysql-proxy/bin可以看到启动脚本

  • ./mysql-proxy --help 查看帮助
  • ./mysql-proxy --help-proxy 查看proxy的帮助
  • ./mysql-proxy --help-all 查看所有帮助

在这里插入图片描述 3、进入到/usr/local/mysql-proxy,自己手动建立配置文件目录和配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值