一、读写分离的概述
读写分离是高性能数据库集群的一种方式,其本质是将访问压力分散到集群中的多个节点,但是没有分散存储压力。业务服务器将写操作发给数据库主机,将读操作发给数据库从机通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。
1.1、读写分离的基本原理
数据库服务器搭建主从集群,一主一从、一主多从都可以。 数据库主机负责读写操作,从机只负责读操作。 数据库主机通过复制将数据同步到从机,每台数据库服务器都存储了所有的业务数据。
二、怎么实现读写分离?
2.1、环境准备和安装包
注意:配置过程需要的安装包,需要的可以去我的百度云下载,我的 Mysql手工编译版本是 5.7。
百度云链接为:https://pan.baidu.com/s/1DZIVX46wKWoW1ak-IGkzKA
提取码:fohm
读写分离是在主从复制的基础上进行配置的,所以先搭建主从复制再搭建读写分离。 准备五台centos7虚拟机,其中三台搭建 Mysql服务器(一台为主服务器,其余两台为从服务器)
一台虚拟机用来做 Amoeba,实现读写分离。 一台做应用客户端,进行操作验证。
我的服务器IP地址:
2.2、实验操作
2.2.1、Amoeba的配置
1、关闭防火墙,挂载本地共享文件夹,把 jdk 安装包放在 /usr/local目录下
2、安装 jdk 包
3、修改 profile 文件,配置环境变量
4、先创建一个文件,存放解压内容,解压 amoeba包
给Amoeba加755权限,并验证安装是否成功。
2.2.2、Mysql服务器
在三台 mysql 服务器上添加权限,开放给 Amoeba 访问
登录数据库
2.2.3、读写分离实现配置
回到Amoeba服务器,配置读写分离功能。
1、修改amoeba.xml文件
2、修改配置文件夹下的dbServers.xml文件
2.3、客户端验证
1、yum安装数据库
2、连接 amoeba 服务器
创建一个名为 test02 的库,再创建一个叫 demo01 的表
我们在主服务器上,直接进入数据库,就会发现也多了一个名为 stu01 的表
三、总结
读写分离扩展了读操作,提高了并发吞吐量和负载能力。对数据库进行写的操作时,全部由主服务器承担,用来避免数据的不同步。进行读操作时,由从服务器slave来承担,用来分担数据库的压力。
相关文章: