千家信息网

SQL导致购物车服务无法使用怎么办

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章给大家分享的是有关SQL导致购物车服务无法使用怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概述之前处理过一个购物车故障,觉得还挺经典的,在这里跟大家分享一下
千家信息网最后更新 2024年11月22日SQL导致购物车服务无法使用怎么办

这篇文章给大家分享的是有关SQL导致购物车服务无法使用怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

概述

之前处理过一个购物车故障,觉得还挺经典的,在这里跟大家分享一下。这个故障直接导致前端添加购物车、获取用户购物车列表等操作都失败了。购物车是入口,一旦出现问题,影响极其严重。

临时处理

购物车服务所有接口,是有打印响应时间的,发现比平时慢了很多。由于情况已是十万火急了,我只能先重启购物车,缓冲一下,然后利用这段缓冲时间,赶紧定位问题。

问题定位

之前对购物车应用基于Spring Cloud微服务化了,已经稳定运行了几个月了,且当时上线前也经过压测,接口性能是没问题的。怎么突然之间就有问题了呢?根据以往的经验,大部分故障都是SQL语句引起的,因此首先导出数据库的所有慢SQL(腾讯云有导出慢SQL的工具)语句,发现大部分慢查询都是来自库存查询的SQL语句,有些甚至是10秒钟才执行完。

后来仔细一看,库存慢查询语句,要查询库存的商品比平时多很多。商品个数少的话,这条语句还是非常快的,一旦多了就开始慢了。

解决方案

由于库存计算体系的历史原因,这条SQL是很难优化的。情况又是十万火急的,大老板一直在问咋回事。因此临时改代码,将商品库存放到Redis缓存起来。购物车服务的话,是允许库存数据不实时的,因为后面的结算和支付会实时计算库存,库存不足的时候,会提示用户的。

注意:

  • 由于购物车是入口,流量很大,而从购物车到结算页再到支付,由于有一个操作步骤,因此结算页和支付页的流量是没有购物车那么大的;

  • 部分用户购物车上的商品数据是非常多的,但是未必都会买,用户也可以勾选要买的商品,然后下单;

  • 部分用户没有清理购物车失效商品的习惯,导致购物车上的商品非常多。

终极解决方案

将库存服务独立出去,将商品库存数据放置到缓存,并引入实时刷新缓存中库存数据的机制,让缓存中的数据尽量保证新鲜。这样的话,查询库存的时候,大部分都可以从缓存中获取,不会穿透到数据库上。

补充

我们对接口进行压测的时候,部分场景下,要考虑入参的个数,不能简单的用几个数据压测,觉得性能OK就不管了。

感谢各位的阅读!关于"SQL导致购物车服务无法使用怎么办"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

购物 购物车 库存 商品 数据 服务 用户 缓存 语句 问题 查询 大部分 实时 故障 时候 部分 支付 结算 怎么办 十万火急 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 以软件开发为中心的商业计划书 茶室平面图软件开发 数据库返回格式 软件开发电脑上市公司 跑分软件开发哪家好 什么事数据库安全性 青海高速网络安全吗 存储海量文本用什么数据库 安徽网络安全审计系统咨询公司 监控服务器如何登陆 腾讯云服务器怎么清理系统盘 新一互联网络科技 生产管理软件开发人员 可选择的中文数据库是 网络安全教育的目的是 网络安全黑板报设计高中 青海公安网络安全 长清区创业谷软件开发公司 水电站网络安全责任落实 网络技术的研发和起源 csgo社区皮肤服务器贴吧 常见项目管理服务器有哪些 高校教育信息化与网络安全 网站数据库用什么技术实现 在关系数据库中什么是码 湖北营销网络安全维护报价表 丹东软件开发招聘 希柏云互联网科技有限公司 sql数据库关闭后能否备份 软件开发上什么三本院校
0