K8凯发

订单系统中并发问题与锁机造的探求

K8凯发电商系统?2018-11-19 09:20:16?电商资讯?

K8凯发

问题的本原

如果在订单治理系统开发打算中(以火车票订购系统为例),用户A和用户B必须预约从成都到北京的火车票。 A和B都在分歧的售票窗口调查某个隔间卧铺。下铺有空间。当用户B果断订购下铺时,用户A对订购商店或底层商店优柔寡断。当用户A决定订购下铺时,系统会提醒已预留下铺,请沉新选择下铺。在这个系统场景中,让我们探求火车票系统若何处置并发事务以及若何使用锁机造来预防沉复预约。

选项1:

为了预防沉复预约,大无数人会在进行预约操作之前思考去数据库查抄商店是否已被预约,如果“商店”数据库表增长了标具名段FLAG(空闲:0;预约: 1),if若是下铺的FLAG字段值为1,则保留不成功。若是为0,则保留成功并且FLAG设置为1.若是这种解决规划位于拥有少量流量的系统中,则这种解决规划可能是可行的。但是,当有大量的业务,出格是火车票的数量时,就会出现问题。问题是当用户A和用户B同时订阅统一商店时,固然它是“同时”的,但必须有一个数据库操作的序列。若是A在查问商店的FLAG,则值为0,筹备就绪。订阅设置为值1,而B已经成功订阅并将FLAG设置为1.由于A没有对FLAG=1的即时查问,所以保留成功,并且FLAG设置为1./p>

%25E8%25AE%25A2%25E5%258D%2595%25E7%25B3%25BB%25E7%25BB%259F%25E4%25B8%25AD%25E5%25B9%25B6%25E5%258F%2591%25E9%2597%25AE%25E9%25A2%2598%25E5%2592%258C%25E9%2594%2581%25E6%259C%25BA%25E5%2588%25B6%25E7%259A%2584%25E6%258E%25A2%25E8%25AE%25A8-1

这导致沉复预约。在票务顶峰期,使用这样的规划,沉复预约是不成预防的。

选项2:

我们想过使用数据库的消极锁来解决这个问题。设想一下,若是用户A查问他想要预约的票证,则用户B底子找不到它。只有A能够看到它。是否可能没有沉复预约?由于没有人在掳掠他。

这能够这样实现:

选择* from table where ...... for update skip locked,该语句是查问用户指定的票证信息,并锁定(for update),若是有纪录被锁定,则自动跳转到下一笔纪录(跳过锁定),所以无论谁先查问,都能够慢慢思考是上升还是降落。但火车票系统是这样做的吗?显然不是,由于用户履历太差,门票现实上好多,但不显著的是它不能买,这显然是不合理的。

选项3:

我们还思考从订单治理系统法式级解决并发问题。最单一的步骤是使用同步来处置它,但我们必要知路必须以群集模式部署大型系统。同步只能解决单节点环境的并发问题。要解决此问题,您仍必须依赖全局锁定机造。

选项4:

此刻我们回到数据库中,我们思考一下。若是我们在查问时使用乐观锁定,那么当我们在预约前使用消极锁按时会产生什么?例如,当我们查问:

从表当选择* ......

用户A和用户B都有一样的票务信息(中央商店和较低的商店),而用户A或用户B在预按时会产生消极锁定:

选择*从表格中......进行更新(仅用于预约票证做消极锁定)

此时,后者无法在预按时获取纪录的锁定,天然也无法进行预约,从而预防了沉复预约的问题。


K8凯发 b2b2c多用户商城系统是基于PHP技术的企业级电子商务平台系统,系统支吃旖台自营、招商加盟和多商家入驻、集成微信商城、移动端APP商城、微信幼法式于一体。公司主交易务蕴含商城系统定造开发、新零售系统解决规划、电商平台系统定造开发、商城网站建设服务等等,K8凯发为大、钟注幼企业提供一个安全、高效、壮大的电子商务解决规划,协助企业急剧构建、部署和治理其电子商务平台,拓展企业销售渠路,致力于推动PHP技术和电子商务行业的发展而不休致力。

文章关键词  
订单治理系统
网上订货系统
订货系统
做电商网站,找K8凯发信息技术,网站建设品牌设计企业

推荐阅读

除了供给尺度网上商城系统之表,我们还开源商城源码,为您提供电商平台开发定造服务

K8凯发全新版PHP企业级电商平台系统,以客户需要为己任,提供免费网店系统源码给用户履历,为国内客户出格是上海周边客户提供电商平台及网上商城网站建设服务,您的商城开发建站需要,我们来实现!

网上商城建站
蕴含微信商城网站建设及幼法式商城建设等一站式电商系统建站服务,java商城php商城 两种说话。
APP开发
提供APP商城开发,蕴含Android App 、iOS App等等, 原生APP品质
手机商城开发
提供APP商城、微信商、幼法式、手机H5商城搭建及二次开发
电商平台开发
作为电子商务系统提供商,以自研的商城模板为企业提供专业的电商平台系统搭建服务

顿时搭建自己的电商平台

wechat_default
wechat_default
【网站地图】