手机浏览器扫描二维码访问
罗晟继续说道“下单减库存。当用户并发请求到达服务端时,首先创建订单,然后扣除库存,等待用户支付。这种顺序是我们一般人首先会想到的解决方案,这种情况下也能保证订单不会超卖,但也会产生一些问题,第一就是在极限并发的情况下,任何一个内存操作的细节都至关影响性能,尤其是像创建订单这种逻辑,基本都需要存储到磁盘数据库的,对数据库的压力是可想而知的,106应该是用的甲骨文数据库,别花这个冤枉钱了,放到我的星云上。”
“第二是如果用户存在恶意下单的情况,只下单不支付这样库存就会变少,会少卖很多订单,虽然服务端可以限制i和用户的购买订单数量,但这也真心不算是一个好办法。”
“然后就是支付减库存了。如果等待用户支付了订单再减库存,第一感觉就是不会少卖。但这是并发架构的大忌,因为在极限并发的情况下,用户可能会创建很多订单,当库存减为零的时候很多用户会发现抢到的订单支付不了,这也就是所谓的超卖,也不能避免并发操作数据库磁盘io。”
“最后是预扣库存。从上面两种方案的考虑,可以得出结论只要创建订单,就要频繁操作数据库io。那么有没有一种不需要直接操作数据库io的解决方案呢答案是有,就是预扣库存,先扣除了库存,保证不超卖,然后异步生成用户订单,这样响应给用户的速度会快很多。”
“那么怎么保证不少卖呢用户拿到了订单,不支付怎么办订单都应该有效期,比如说用户五分钟内不支付,订单就失效,就会加入新的库存。订单的生成是异步的,应该放到即时消费队列中处理”
刘副总听的云里雾里的,但是他发现罗晟和他带来的几个技术专家交流的愈发火热,似乎也得出了一个信息。
找对人了
这时,罗晟打开了房间里的墙面上的大屏幕,他也拿来了一台笔记本工作电脑打开,示意众人看向主投屏,自己一边操作电脑一边说道
“语言原生为并发设计,我就采用语言给各位演示一下单机抢票的具体流程以及我优化后的解决方案。”
“包中的it函数先于a函数执行,也在这个阶段主要做一些准备性质的工作。系统需要做的准备工作有初始化本地库存、初始化远程redis存储统一库存的hash键值、初始化redis链接池。”
“另外还需要初始化一个大小为1的t类型chan,目的是实现分布式锁的功能,也可以直接使用读写锁或者使用redis等其他方式避免资源竞争,但是使用channe更加高效,这就是语言的哲学,不需要通过共享内存来通信,而是通过通信来共享内存。redis库使用的是redi,下面是代码
ocasike包结构体定义
ackaocasike
tyeocasikestruct{
ocastockt64
ocasaesvot64
}
reotesike对hash结构的定义和redis连接池
ackareotesike
远程订单存储健值
tyereotesikekeysstruct{
不知不觉,时间已经过去了一个半小时,反正刘副总是听不懂,那些代码看的晕头转向。
技术问题终于讨论的差不多了。
铁路集团的技术专家看向了刘副总并且带着肯定的目光轻点了一下头,刘副总立马就明白了,果断的转投看向罗晟问道“罗总,如果这么一整套完善解决方案,报价是多少”
罗晟直言“每年支付10个亿。”
刘副总听到这个数字差点没有一口老血喷出来,106票务系统一期工程的预算也才3个亿,这样的报价简直贵到难以接受。
无敌传人 修仙奶爸在都市 末日小兵 最强妖祖 歌动天下 大唐侦察兵 重生宅男之名剑谱 霍先生,我们结婚吧 穿越后从零开始的异世生活 帝都天龙 天价宠婚:霍总的小娇妻 我有无数技能栏 万古第一进化系统 放开那个江湖 从大灭绝开始 双世债 兵贼 嫡女要狠 英雄联盟之奇异战队 赘婿要翻身
他们家夫人是个全才,天天各路大佬想来抢,他们真的好辛苦...
铁血骠骑由作者三十三层创作全本作品该小说情节跌宕起伏扣人心弦是一本难得的情节与文笔俱佳的好书919言情小说免费提供铁血骠骑全文无弹窗的纯文字在线阅读。...
白叶,身为仙界大家之后,却是五行禁体,不能修炼法术,但在一个初升仙界的人的指导下,他开始修炼凡间武功,之后更是直接下到凡间,在凡间感悟神奇奥术观天道理天道逆天道与凡间...
天生废体,家破人亡,秦浩受尽同族人羞辱,尝遍世间冷暖意外融合祖传血玉,拥有神秘空间,得噬祖传承,从此神挡杀神,佛挡杀佛,天若阻我,我便踏破这天,成为主宰!...
军长难过前妻关军长难过前妻关最新章节军长难过前妻关无弹窗军长难过前妻关全文阅读各位书友要是觉得军长难过前妻关还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!...
她在逃跑途中,被神秘男人破了身。没想到他居然是富可敌国,权势滔天,冷酷腹黑,且不近女色的顾凌擎谁说他不近女色。她每日累的腰酸背痛,终于受不了,我收回让你负责这句话,你自由了。他坐在她床边,把她拉到自己的怀中,温柔的说道小雅,你是不是搞错了,应该负责的不应该是你吗?白雅...