首页 > 其他分享 >读写分离

读写分离

时间:2023-03-20 14:13:45浏览次数:30  
标签:主库 同步 读写 分离 复制 从库

互联网大部分业务场景都是读多写少的,对于电商等典型业务,读和写的请求对比可能差了不止一个数量级。为了不让数据库的读成为业务瓶颈,同时也为了保证写库的成功率,一般会采用读写分离的技术来保证。

读写分离的实现是把访问的压力从主库转移到从库,特别在单机数据库无法支撑并发读写,并且业务请求大部分为读操作的情况下。

主从复制过程

 

 主从复制下的延时问题

敏感业务强制读主库
在开发中有部分业务需要写库后实时读数据,这一类操作通常可以通过强制读主库来解决。

关键业务不进行读写分离
对一致性不敏感的业务,比如电商中的订单评论、个人信息等可以进行读写分离,对一致性要求比较高的业务,比如金融支付,不进行读写分离,避免延迟导致的问题。

主从复制如何避免丢数据

异步复制
异步复制模式下,主库在接受并处理客户端的写入请求时,直接返回执行结果,不关心从库同步是否成功,这样就会存在上面说的问题,主库崩溃以后,可能有部分操作没有同步到从库,出现数据丢失问题。

半同步复制
在半同步复制模式下,主库需要等待至少一个从库完成同步之后,才完成写操作。主库在执行完客户端提交的事务后,从库将日志写入自己本地的 relay log 之后,会返回一个响应结果给主库,主库确认从库已经同步完成,才会结束本次写操作。相对于异步复制,半同步复制提高了数据的安全性,避免了主库崩溃出现的数据丢失,但是同时也增加了主库写操作的耗时。

全同步复制
全同步复制指的是在多从库的情况下,当主库执行完一个事务,需要等待所有的从库都同步完成以后,才完成本次写操作。全同步复制需要等待所有从库执行完对应的事务,所以整体性能是最差的。

标签:主库,同步,读写,分离,复制,从库
From: https://www.cnblogs.com/jiaozg/p/17236068.html

相关文章

  • maven 第三方jar包分离
    jar包依赖包分离maven配置中build标签中引入一下组件<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifa......
  • Sa-Token实现分布式登录鉴权(Redis集成 前后端分离)
    文章目录​​1.Sa-Token介绍​​​​2.登录认证​​​​2.1登录与注销​​​​2.2会话查询​​​​2.3Token查询​​​​3.权限认证​​​​3.1获取当前账号权限码......
  • ShardingSphere5.0.0-Sharding-proxy MySql 读写分离
    一、关于ShardingSphere 官网:​​ApacheShardingSphere​​官方文档:​​概览::ShardingSphere​​官方下载:​​Indexof/dist/shardingsphere​​本文使用版本:apache-sh......
  • ShardingSphere5.0.0-Sharding-proxy MySql 读写分离
    一、关于ShardingSphere 官网:ApacheShardingSphere官方文档:概览::ShardingSphere官方下载:Indexof/dist/shardingsphere本文使用版本:apache-shardingsphere-5.0.0......
  • C++ 读写ini文件
    #include<Windows.h>#include<string>classIniFile{public:IniFile(conststd::wstring&path):m_path(path){}std::wstringGetValue(conststd::wstring&......
  • 自己动手从零写桌面操作系统GrapeOS系列教程——19.硬盘读写理论知识
    学习操作系统原理最好的方法是自己写一个简单的操作系统。一、硬盘控制器我们前面已经讲过硬盘控制器是一种I/O接口,CPU通过它就能间接的读写硬盘。硬盘控制器主要有ID......
  • java IO整理及读写文件常见方式
    一:流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在设备间传输称之为流。流的本质是数据传输,根据数据传输的特性将流区分为各......
  • 读写锁与邮戳锁
    一、读写锁ReentrantReadWriteLock读写锁锁的一个资源能够被多个线程访问,或者被一个写线程访问,但是不能同时存在读写操作。读写操作时互斥的。锁降级锁降级就是将写入......
  • 【问题解决】Linux 下 VSCode IntelliSense 对 C 语言读写锁类型报错的问题
    如图下图所示,当我们想要使用C语言读写锁类型时,IntelliSense会提示如下未定义的错误:IntelliSense提示错误但是,如果忽略这些错误,直接`gcc-o`程序又没有问题。通......
  • Python中文件读写操作
    1txt文件1.1写操作importnumpyasnpdefwrite(fileName,data):file=open(fileName,'w')row,col=data.shapestring=""foriinrange(row):......