MYSQL【六、高可用/性能】

1、读写分离

读写分离的基本原理是将数据库读写操作分散到不同的节点上。

在这里插入图片描述

读写分离的基本实现:

  • 数据库服务器搭建主从集群,一主一从、一主多从都可以。
  • 数据库主机负责读写操作,从机只负责读操作。
  • 数据库主机通过复制将数据同步到从机,每台数据库服务器都存储了所有的业务数据。
  • 业务服务器将写操作发给数据库主机,将读操作发给数据库从机。

2、读写分离的分配实现

将读写操作区分开来,然后访问不同的数据库服务器,一般有两种方式:程序代码封装 和 中间件封装。

● 程序代码封装

程序代码封装指在代码中抽象一个数据访问层(所以有的文章也称这种方式为 “中间层封装” ),实现读写操作分离和数据库服务器连接的管理。例如,基于 Hibernate 进行简单封装,就可以实现读写分离:

在这里插入图片描述

目前开源的实现方案中,淘宝的 TDDL (Taobao Distributed Data Layer, 外号:头都大了)是比较有名的。

● 中间件封装

中间件封装指的是独立一套系统出来,实现读写操作分离和数据库服务器连接的管理。中间件对业务服务器提供 SQL 兼容的协议,业务服务器无须自己进行读写分离。

对于业务服务器来说,访问中间件和访问数据库没有区别,事实上在业务服务器看来,中间件就是一个数据库服务器。

在这里插入图片描述


3、主从复制

  • master 数据写入,更新 binlog
  • master 创建一个 dump 线程向 slave 推送 binlog
  • slave 连接到 master 的时候,会创建一个IO线程接收binlog,并记录到 relay log 中继日志中
  • slave 再开启一个sql线程读取 relay log 事件并在 slave 执行,完成同步
  • slave 记录自己的 binglog

在这里插入图片描述


4、主从同步延迟

● 原因

一个服务器开放 N个链接给客户端来连接的,这样有会有大并发的更新操作, 但是从服务器的里面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纯纯的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值