当前位置: 首页 > news >正文

思考:大多数并发是不是出现在京东、淘宝这些购物平台的618、双11这种抢购平台上?普通的200人的管理系统,需要并发吗?

目录

一.京东/淘宝的并发 vs 普通管理系统的并发

二.为什么200人的管理系统也需要处理并发?

1.典型场景举例(在一个订单审批CRM系统中)

三. 普通管理系统如何应对并发?

四.总结一下

五.思考这两种“并发”的相同与不同,这两种并发,难道不是同一个意思吗?本质就是防止数据不一致?

1.类比医疗领域

2.结论


这是一个非常好的问题,它触及了“并发”概念的核心区别和普遍存在的误解。

简单直接的答案是:需要,但此“并发”非彼“并发”。让我来详细解释一下。

一.京东/淘宝的并发 vs 普通管理系统的并发

特点京东/淘宝类电商(618,双11)200人普通管理系统(如OA,ERP,CRM)
并发类型高并发、瞬时并发低并发、长时并发
核心挑战海量用户(数十万至数百万)在同一秒抢购同一商品(如茅台、iPhone),瞬间冲击数据库和服务器。考验的是极限性能、系统架构、分布式能力、缓存策略、削峰填谷几十到几百个用户在工作时间内同时在线,但他们的操作分散在不同模块(张三在填报表,李四在批流程,王五在查数据)。考验的是数据一致性、业务逻辑正确性、资源锁的管理
技术焦点横向扩展:如何通过加机器、负载均衡、微服务化来应对流量洪峰。
防超卖:如何保证10000件库存不被10001人买到。
纵向设计:如何设计合理的数据库事务、业务锁、会话管理,保证业务规则不被破坏。
用户体验:保证用户操作不卡顿、数据不混乱。
类比春运火车站:几万人同时涌向几个检票口,目标是瞬间疏散。公司办公楼:200人同时在各办公室工作,使用打印机、会议室等共享资源,需要有序协调。

二.为什么200人的管理系统也需要处理并发?

这里的并发,主要指“多个用户可能同时操作同一份数据或资源”。如果不做处理,会产生严重问题:

1.典型场景举例(在一个订单审批CRM系统中)

  • “丢失更新”问题

上午10:00,销售A和销售B同时打开了同一个客户“XX公司”的资料页(当前订单额为100万)。

销售A谈成了一笔10万的订单,在系统里将订单额更新为100 + 10 = 110万,然后保存。

几乎同时,销售B也谈成了一笔5万的订单,在他打开的页面上,看到的还是100万,他更新为100 + 5 = 105万,然后保存。

结果:销售A的更新被覆盖了!数据库里最终是105万,而不是正确的115万。

  • 业务逻辑冲突

库存管理系统里,某商品只剩最后1件。

用户甲和用户乙同时点击“购买”。

如果不加锁控制,系统可能判断两个请求的库存都> 0,导致超卖(卖出2件),这和在京东抢茅台的本质是一样的,只是规模小。

  • 数据一致性问题

财务系统中,会计A正在生成某部门的月度汇总报表(需要读取大量数据)。

与此同时,会计B正在修改该部门刚上报的一笔支出。

如果不做隔离,会计A拿到的报表可能包含部分旧数据和部分新数据,导致报表不准确。

三. 普通管理系统如何应对并发?

不需要像电商那样搭建复杂的分布式架构,但需要在应用层和数据库层进行精心设计:

  1. 数据库事务:将一组相关操作(如扣库存、创建订单)放在一个事务里,保证其原子性。

  2. 悲观锁:最直接的方式。在操作数据前先锁定(如SELECT ... FOR UPDATE)。比如“审批流程”中,一个人批的时候,锁定这条申请,防止多人重复审批。

  3. 乐观锁:更高效的方式。在数据表加一个版本号字段(version)。更新时,检查当前版本号是否和读取时一致,一致则更新并增加版本号,不一致则告知用户“数据已变更,请刷新重试”。这非常适合上述“丢失更新”场景。

  4. 队列化处理:对于某些可能冲突的核心操作(如发放唯一编号),采用内存队列或数据库作业队列,让其顺序执行。

  5. 合理的会话和状态管理:确保用户操作状态清晰,避免重复提交。

四.总结一下

  • 并发无处不在:只要有多个用户可能同时操作共享资源,就需要考虑并发控制。

  • 规模决定方案:京东淘宝解决的是海量、瞬时、集中的并发,是“量变引起质变”的架构级挑战。普通管理系统解决的是低频、分散、业务逻辑的并发,是设计严谨性的挑战。

  • 本质相同:两者都要保证“数据一致性”“业务正确性”。区别在于应对的规模和采取的技术手段不同。

所以,开发一个200人的管理系统,绝对不能忽视并发问题。虽然不需要应对“秒杀”场景,但必须处理好“多个用户同时修改一个客户信息”、“同时申请同一间会议室”、“同时审批同一张报销单”这类看似普通但隐患巨大的并发场景。否则,系统上线后就会出现各种数据错乱、流程混乱的“灵异事件”。

五.思考这两种“并发”的相同与不同,这两种并发,难道不是同一个意思吗?本质就是防止数据不一致?

问到了本质——它们的核心目标确实是同一个:防止数据不一致。

但这是一个绝佳的观察,正好揭示了软件工程中一个深刻的道理:同一个根本问题,在不同规模和场景下,会演变成完全不同性质的挑战,导致解决方案天差地别。

1.类比医疗领域

说白了就是,两种并发,目的一致(都是为了保持数据一致),角度不同(一个是防止海量数据打瘫后端服务导致超卖,另一个是防止脏读等情况导致数据不一致)

核心目标问题根源表现症状解决方案技术复杂度
普通感冒恢复健康病毒感染上呼吸道打喷嚏、流鼻涕、喉咙痛休息、多喝水、吃点感冒药家庭护理级别
重症肺炎恢复健康严重感染肺部,导致呼吸衰竭高烧、剧烈咳嗽、呼吸困难、血氧下降ICU监护、高流量氧疗、强力抗生素、呼吸机多学科重症医疗团队
电商大促并发数据一致性海量请求瞬间冲击单点资源超卖、服务崩溃、响应超时分布式架构、缓存、削峰、限流、熔断架构师、分布式专家
管理系统并发数据一致性多个会话竞争同一数据行更新丢失、脏读、业务逻辑错误数据库事务、行锁、乐观锁、队列高级开发工程师

2.结论

所以,你最初的直觉“本质就是防止数据不一致”完全正确的。这正是计算机科学中“并发控制”理论的统一目标。

但工程实践的魅力在于:

  • 当冲突规模小(N=2)时,这是一个“算法正确性”问题。我们用锁、事务这些严谨的“计算机科学”工具来解决。

  • 当冲突规模巨大(N=100,000)时,它首先变成了一个“系统生存”问题,其次才是正确性问题。我们不得不用“架构艺术”——拆分、缓存、异步——来改变游戏规则,把一个“排队问题”转变为一个“分发和缓冲问题”。

因此,我们可以说:

  • 普通管理系统的并发,是并发问题的“经典形态”。它要求开发者深入理解数据库原理和事务隔离级别。

  • 电商大促的并发,是并发问题的“极限形态”。它要求架构师具备分布式系统设计能力,为了性能和可用性,有时需要在“强一致性”上做出妥协,转而追求“最终一致性”。

作为开发者,理解前者是基础,是必修课;了解后者是视野的拓展,知道当业务规模爆炸式增长时,世界会变成什么样子。两者相辅相成,构成了对“并发”这一核心概念的完整理解。

以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~~

http://www.jsqmd.com/news/333898/

相关文章:

  • <span class=“js_title_inner“>新书福利 | 《揭秘网络勒索攻击:从基础知识到应对策略全解析》(5本)</span>
  • 城市数字鸿沟指数(2000-2022)
  • Anthropic :AI Coding 是如何造成你的职业技能衰退,你是如何一步步被蒙蔽
  • 茶艺实训室:品茗习茶,传承古韵茶香
  • <span class=“js_title_inner“>刚改完数据刷新就不见了?聊聊主从延迟下的“读后写” (Read Your Writes) 陷阱</span>
  • 电池产品出海合规怎么做:从产品判断到运输到平台,一篇走全流程
  • <span class=“js_title_inner“>动画珍藏库上线!从童年经典到热血新番,这里全都有!</span>
  • 技术周报|OpenClaw横空出世狂揽12万星,AI助手领域迎来现象级爆款
  • <span class=“js_title_inner“>稿费翻倍 | 25年刊编撰启动,聚焦AI安全新战场</span>
  • AI与供应链融合:别再吹“降本神话”,技术落地的4大壁垒与破局路径
  • <span class=“js_title_inner“>又被内存泄漏搞了一天</span>
  • <span class=“js_title_inner“>Java代码审计第9期(再次更新超强课程体系)</span>
  • 新手也能上手 一键生成论文工具 千笔ai写作 VS 笔捷Ai 专科生专属
  • ue 动画导出到低版本
  • <span class=“js_title_inner“>为什么说队列是万能药?</span>
  • RPA 架构下的企微非官方 API:外部群主动调用的技术实现与优化
  • 2026年加油卡回收正规平台全方位比拼,油卡变现不踩坑 - 京回收小程序
  • SQL窗口函数实践笔记
  • 2026年零食品牌排行前十新鲜出炉:安全靠谱的零食品牌推荐及挑选指南和选购建议 - Top品牌推荐
  • Python 开发企微第三方 API:RPA 模式下外部群主动调用实现
  • 【C语言】 关键字与用户标识符
  • python变量详解
  • linux 中sed命令对指定步长行进行处理
  • Anthropic推出Claude Cowork插件功能增强任务自动化能力
  • 99999999999999
  • [STM32L5] STM32L562E-DK硬件和DEMO程序演示
  • 【重磅】正规的腾讯广告排行榜单 - 服务品牌热点
  • 【艾思科蓝推荐】2026 计算机科学与技术/电子与通信/人工智能领域国际学术会议汇总 | 2026年3月学术会议征稿信息速览 | EI/Scopus稳定检索,高录用,适合硕博毕业/职称评审/项目结题
  • plc教程系列篇(二),plc教程之5大编程语言类型介绍
  • # Vue3 音频标注插件 wavesurfer