美文网首页
数据库读写分离引起的业务逻辑bug问题分析

数据库读写分离引起的业务逻辑bug问题分析

作者: GuangHui | 来源:发表于2022-01-06 17:07 被阅读0次

数据库读写分离引起的业务逻辑bug问题分析

前几天项目组在线上发现一个线上bug,bug出现的业务场景,流程大致如下:

  1. A事务涉及对一个表的更新;
  2. A事务提交后,会同步发送一条MQ消息;
  3. 下游MQ消费者在处理的时候,会查询事务处理的结果,进行后续流程。

由于数据库设置了读写分离,而主库到从库的数据同步是有时间差的。

此时如果在数据同步的时间差之内,读取从库的话,就会出现查不到事务提交后的数据结果的情况。

而项目中的bug,正是由于这种问题引起的。

由于读写分离的设置,更新操作是在主库上执行的,而查询是在从库上执行的。

所以针对这种读写分离的情况:

解决的方案有如下两种:

1.在读写压力均很小的情况下,可通过调整sql方式指定读主库的方式,避开主从同步时间差引起的问题。
2.在异步处理MQ消息时,当查不到相应结果的时候,可以进行梯度重试操作,此时重试就可以使用Spring-Retry框架来进行,当达到最大重试次数时,若仍未查到满意结果,则进行异常告警,提醒人工介入进行处理。
3.调整业务交互流程:将下游原本需要通过查库获取的数据,通过MQ消息进行传递,这样也可以减少对数据查询的次数。

相关文章

  • 数据库读写分离引起的业务逻辑bug问题分析

    数据库读写分离引起的业务逻辑bug问题分析 前几天项目组在线上发现一个线上bug,bug出现的业务场景,流程大致如...

  • 阿里P8架构师带你玩转数据库 “读写分离”

    想用数据库“读写分离” 请先明白“读写分离”解决什么问题 有一些技术同学可能对于“读写分离”了解不多,认为数据库的...

  • mysql主从,集群解决方案

    读写分离原理 看到这个图,首先想到的是什么是读写分离 读写分离采用一主多从的方式,数据库的业务一般读多写少,读锁是...

  • 一个@Transaction哪里来这么多坑?

    目录前言事务失效  数据库层面  业务代码层面  总结事务回滚相关问题读写分离跟事务结合使用时的问题总结 前言 在...

  • 重新认识bug

    1、Bug定义 代码实现的业务逻辑存在问题,就是bug 不符合业务需求和验收标准的,就是bug 用户体验不好...

  • cent os搭载mysql读写分离

    数据库拆分原则 1.优先使用缓存来降低数据库访问压力2.缓存无法解决问题使用数据库读写分离3.读写分离有瓶颈使用数...

  • 想用数据库“读写分离” 请先明白“读写分离”解决什么问题[转载]

    最近看数据的优化方案看到的文章,分析的很透彻,记录一下转载自:想用数据库“读写分离” 请先明白“读写分离”解决什么...

  • MySql的读写分离

    数据量增多,单机的数据库不足以支撑业务,需要用到数据库集群。而读写分离,就是将数据库的读和写分离,对应到数据库一般...

  • 数据库主从一致性问题

    背景 上一篇我写了为了处理高并发带来的数据库压力问题,引出了数据库读写分离技术。其思想总结为:一主多从、读写分离,...

  • mysql读写分离

    mysql读写分离 1、读写分离的介绍 MySQL读写分离基本原理是让master数据库处理写操作,slave数据...

网友评论

      本文标题:数据库读写分离引起的业务逻辑bug问题分析

      本文链接:https://www.haomeiwen.com/subject/skdrcrtx.html