IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【高并发线上问题】线程不安全引起线上问题的分析思路 -> 正文阅读

[Java知识库]【高并发线上问题】线程不安全引起线上问题的分析思路

1、背景

公司是做电商CRM方面业务,所在的数据平台组提供基于阿里PolarDB 存储提供近2年的热数据查询,构建了统一的主数据数据中台服务,供业务方查询自己需要的数据。热数据服务自19年发布上线后,陆续的对接了很多业务。因为业务的需要,公司的开放平台需要依赖热数据查询服务,进行id之间的转换。对接上线后,就有一家客户从一直在核对数据,发现了很多问题,包括程序的问题,方案流程的问题,一直在解决问题,但是数据的问题一直在发生着…

2、现象

最近客户给了一批异常数据,其中就有id转化有问题,id A没有找到对应的ID B, 反而找到的是ID C,也就是说id 转化串了,但是实际上是能转化成功的, 转化时序场景是如下:
在这里插入图片描述

3、初步判断

这个给人的第一印象可能线程不安全引起的问题,应该有个地方有共享变量。于是在本地多线程并发调用线上的转化api, 能复现问题。初步判断有可能是mybatis 的一级、二级缓存、或者分页插件Pagehelper 的问题

4、具体分析步骤

能复现问题就好办了,通过不断的添加日志,打印请求体和响应体,逐步的缩小排查范围。
1、将PageHelper 工具排除
依旧能复现该问题。
2、在调用mapper 方法之前和之后打印请求体和响应体
在复现问题后,发现请求体的ID 值已经被篡改了,基本找到问题了,是在调用mapper 查询方法之前,组装查询参数的时候,将参数值维护到了配置缓存里。终于找到原因啦!

5、解决方式

组装参数时,从配置缓存里获取表的配置时,进行深拷贝,然后将参数值维护在经过深拷贝后的局部变量里,这样打破了变量的共享。
本地多线程并发,未再出现问题。

6、日志分析

每天id 转化的请求量: 200w
有2059个请求, 占总请求的比例: 0.000970,接近千分之一

7、对业务的影响

当转换后的id 串了之后,拿到错误的id 继续做业务,会造成数据错乱,比如,给A这个人加积分,最后给B 这个人加上了,涉及的租户比较多,问题让人头大。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:35:37  更:2022-03-21 20:36:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:49:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码