news 2026/3/22 11:13:57

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
思考:大多数并发是不是出现在京东、淘宝这些购物平台的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)时,它首先变成了一个“系统生存”问题,其次才是正确性问题。我们不得不用“架构艺术”——拆分、缓存、异步——来改变游戏规则,把一个“排队问题”转变为一个“分发和缓冲问题”。

因此,我们可以说:

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

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

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/17 2:37:29

draw_tensor2psd_v4.py

import cv2import numpy as npimport mathimport osimport structfrom tqdm import tqdmfrom glob import globPALETTE np.random.randint(0, 255, [255, 3], dtypenp.uint32)# 模型输入尺寸(W, H),用于把模型坐标缩放回原图MODEL_IN_W 608…

作者头像 李华
网站建设 2026/3/14 1:41:22

<span class=“js_title_inner“>今年运维这工资是认真的吗?</span>

运维人的至暗时刻已经来临?!这真不是危言耸听。最近身边的运维朋友都在说:35岁到了运维天花板、岗位缩减、薪资倒挂……难道运维岗真的没有未来了?其实......不是运维不重要了。而是运维人的技术栈太久没有升级了!&…

作者头像 李华
网站建设 2026/3/18 21:58:19

plc教程系列篇(二),plc教程之5大编程语言类型介绍

Plc教程的好坏直接影响到大家的学习,好的plc教程通常具备逻辑清晰等特点。为节省大家寻求plc教程的时间,本文将对大家带来plc教程之plc编程语言类型详解。如果你正缺少一份好的plc教程,不妨看看本文哦。 PLC的用户程序,是设计人员…

作者头像 李华
网站建设 2026/3/13 4:51:19

这些不经意的行为,正悄悄地伤害了孩子的视力

‍  家长们有没有发现?现在越来越多的孩子早早戴上了眼镜,有的才上小学,近视度数就已经涨到了几百度。其实很多时候,不是孩子天生视力不好,而是我们日常那些看似不起眼的小行为,正一点点侵蚀着孩子的视力…

作者头像 李华