更新阅读量时的常见错误:脏读

news/2024/12/29 14:06:27/

最近在对开发完的项目进行测试,于是用到了Jmeter来进行压力测试……

在这里插入图片描述

这里准备压测的是一个获取详情的方法,在获取详情的通知更新阅读量!

在这里插入图片描述

上图中代码的逻辑是:

     1. 根据ID获取实体
     2. 判断实体是否存在
     3. 使用三目运算获取当前阅读量
     4. 更新阅读量
     5. 获取详情


同时,我们再将当前操作的数据库表的阅读数展示出来。

↓↓↓↓↓往下看↓↓↓↓↓

在这里插入图片描述


然后就开始使用Jmeter进行压力测试,等待短暂的2秒钟后,产生了结果!

↓↓↓↓↓往下看↓↓↓↓↓

在这里插入图片描述


这里就出现问题了!

在这里插入图片描述

我们在Jmeter中模拟的100个用户,同时请求这个这个接口的实现方法

此时的数据库中read_count值应该为100,不知为什么现在只有4

于是乎,分析一下业务代码中出现了什么问题

在这里插入图片描述

这里是在程序中获取到阅读量,再在业务逻辑层中进行自增以后,再更新到数据库。

这样难免产生了一个问题,我们用两个用户来模拟一下这个问题:

用户A用户B
发起请求
数据库查询,获取阅读量=0
阅读量自增,修改阅读量=1
发起请求
数据库查询,获取阅读量=0
提交,此时数据库中的阅读量=1
阅读量自增,修改阅读量=1
提交,此时提交的阅读量=1覆盖了用户A的更新

既然找到了问题所在,那就直接把自增操作放到数据库中。

在这里插入图片描述
在这里插入图片描述

再次运行Jmeter进行压力测试,观察数据结果!

在这里插入图片描述

现在结果就正常了

系统并发量小,测试100个用户同时获取详情已然是极限。在系统用户量大的情况下还是应该去操作缓存!!


http://www.ppmy.cn/news/420195.html

相关文章

前端手撕代码——手撕插入排序

插入排序 将数组分为已排序和待排序数组&#xff0c;每次从待排序数组中拿出最前面的数插入到已排序的数组中 function insertSort(arr){if(!arr || arr.length < 0){return [];}let len arr.length;for(let i 1; i < len; i){let pre i - 1;let curr arr[i];while …

windows环境下启动jar包脚本及其注意事项

windows环境下启动jar包脚本及其注意事项 bat后台启动jar包脚本&#xff0c;是否启动看接口是否可以访问成功&#xff08;防止中文乱码情况&#xff09; chcp 65001 java -Dfile.encodingutf-8 -jar check-server.jar bat关闭jar脚本(8919是jar包启动的端口号) echo off set po…

ImageNet 1k and 22k

Currently ImageNet 22k is the whole ImageNet Imagenet 1k is ISLVRC2012 Reference 【数据集介绍】ImageNet介绍_CrazyVertigo的博客-CSDN博客_imagenet ImageNet数据集到底长什么样子&#xff1f; - 知乎

ViT pre-trained models 预训练模型下载

自己在网上找后缀为pth的VIT预训练模型花了很长时间&#xff0c;现在上传到百度网盘&#xff0c;提供给有需要的人。因为自己需要&#xff0c;我只下载了imagenet21kimagenet2012_ViT-B_16-224和imagenet21kimagenet2012_ViT-B_16两个base的&#xff0c;其他的请自行翻越去Goog…

from keras import backend as K

from keras import backend as K 如果安装了keras包仍旧出现此错误&#xff0c;可能是没有激活环境&#xff0c;进入到tensorflow环境下 1.激活tensorflow&#xff08;我用的tf_gpu_14&#xff09; conda activate tf_gpu_14出现 2.在此环境下打开你要操作的文件夹 3.输入你…

《机器学习》西瓜书课后习题9.4——python实现K-means算法

《机器学习》西瓜书课后习题9.4——python实现K-means算法 9.4 试编程实现k均值算法&#xff0c;设置三组不同的k值、三组不同的初始中心点&#xff0c;在西瓜数据集4.0上进行实验比较&#xff0c; 并讨论什么样的初始中心有利于取得好结果. 本文主要适用python语言编程实现了K…

HQChart使用教程1- 如何快速创建一个K线图页面

快速创建一个K线图页面 HQChart介绍插件源码地址demo页面代码Option的配置项说明TypeSymbolIsAutoUpdateIsShowRightMenuIsShowCorssCursorInfoIsApiPeriod周期说明 KLineKLine.DragModeKLine.RightKLine.Period:KLine.ZoomTypeKLine.MaxRequestDataCountKLine.PageSizeKLine.D…

SPSS中K均值聚类操作案例

给出我国各地区2003年三次产业产值数据&#xff0c;试根据三次产业产值利用K均值法对31个省、自治区和直辖市进行聚类分析&#xff08;分3类&#xff09;。 主要操作步骤及各选项解释如下&#xff1a; &#xff08;1&#xff09;将变量移入 变量框 中&#xff1b; 将标志变量…