TOP榜写作榜手机小说

最近更新新书入库全部小说

少年书屋 >> 科技之全球垄断 >> 第382章 【解决方案与报价】

第382章 【解决方案与报价】

“第二是如果用户存在恶意下单的情况,只下单不支付这样库存就会变少,会少卖很多订单,虽然服务端可以限制IP和用户的购买订单数量,但这也真心不算是一个好办法。”

“然后就是支付减库存了。如果等待用户支付了订单再减库存,第一感觉就是不会少卖。但这是并发架构的大忌,因为在极限并发的情况下,用户可能会创建很多订单,当库存减为零的时候很多用户会发现抢到的订单支付不了,这也就是所谓的‘超卖’,也不能避免并发操作数据库磁盘IO。”

“最后是预扣库存。从上面两种方案的考虑,可以得出结论:只要创建订单,就要频繁操作数据库IO。那么有没有一种不需要直接操作数据库IO的解决方案呢?答案是有,就是预扣库存,先扣除了库存,保证不超卖,然后异步生成用户订单,这样响应给用户的速度会快很多。”

“那么怎么保证不少卖呢?用户拿到了订单,不支付怎么办?订单都应该有效期,比如说用户五分钟内不支付,订单就失效,就会加入新的库存。订单的生成是异步的,应该放到即时消费队列中处理……”

刘副总听的云里雾里的,但是他发现罗晟和他带来的几个技术专家交流的愈发火热,似乎也得出了一个信息。

找对人了!

这时,罗晟打开了房间里的墙面上的大屏幕,他也拿来了一台笔记本工作电脑打开,示意众人看向主投屏,自己一边操作电脑一边说道:

“Go语言原生为并发设计,我就采用Go语言给各位演示一下单机抢票的具体流程以及我优化后的解决方案。”

“Go包中的init函数先于main函数执行,也在这个阶段主要做一些准备性质的工作。系统需要做的准备工作有:初始化本地库存、初始化远程redis存储统一库存的hash键值、初始化redis链接池。”

“另外还需要初始化一个大小为1的int类型chan,目的是实现分布式锁的功能,也可以直接使用读写锁或者使用redis等其他方式避免资源竞争,但是使用Channel更加高效,这就是Go语言的哲学,不需要通过共享内存来通信,而是通过通信来共享内存。Redis库使用的是redigo,下面是代码:

//localSpike包结构体定义

package localSpike

type LocalSpike struct {

LocalInStock int64

LocalSalesVolume int64

}

//remoteSpike对hash结构的定义和redis连接池

package remoteSpike

//远程订单存储健值

type RemoteSpikeKeys struct {

……

……

不知不觉,时间已经过去了一个半小时,反正刘副总是听不懂,那些代码看的晕头转向。

技术问题终于讨论的差不多了。

铁路集团的技术专家看向了刘副总并且带着肯定的目光轻点了一下头,刘副总立马就明白了,果断的转投看向罗晟问道:“罗总,如果提供这么一整套完善解决方案,报价是多少?”

罗晟直言:“每年支付10个亿。”

刘副总听到这个数字差点没有一口老血喷出来,12306票务系统一期工程的预算也才3个亿,这样的报价简直贵到难以接受。

……

喜欢科技之全球垄断请大家收藏:(www.shaonianshuwu.com)科技之全球垄断少年书屋更新速度全网最快。

科技之全球垄断最新章节 - 科技之全球垄断全文阅读 - 科技之全球垄断txt下载 - 昭灵驷玉的全部小说 - 科技之全球垄断 少年书屋

猜你喜欢: 万界圆梦师吞噬星空异常生物见闻录出笼记重卡战车在末世从红月开始小世界其乐无穷修真四万年我一个人砍翻末世机战无限宇宙科技崛起最终进化我的成神日志四合院不甘心的许大茂这个沙盒游戏不靠谱我有一百个分身诸天时空行全球迷雾求生电影世界私人订制创造游戏世界
完本推荐: 我的细胞监狱全文阅读万界圆梦师全文阅读吞噬星空全文阅读玩家凶猛全文阅读异常生物见闻录全文阅读全球神武时代全文阅读从红月开始全文阅读电影世界逍遥行全文阅读我有超体U盘全文阅读小世界其乐无穷全文阅读美漫之道门修士全文阅读重卡战车在末世全文阅读全球迷雾求生全文阅读全球降临:克苏鲁的地窟游戏全文阅读科技图书馆全文阅读我的女友是丧尸全文阅读修真四万年全文阅读我在仙界有道分身全文阅读纪元黎明全文阅读幻想世界大穿越全文阅读
同类新书: 从太阳花田开始二次元王座极限恐惧游戏世界旅行者吴限宇宙时空之穿越者混在末世当渔夫逆行武侠我的世界编辑器无限之升级系统末日大游戏系统我的大脑里有门末世之全能进化生化天启电影世界神级龙套电影梦幻系统冲出末日细胞渗透斗擎暗影街

科技之全球垄断最新章节手机版 - 科技之全球垄断全文阅读手机版 - 科技之全球垄断txt下载手机版 - 昭灵驷玉的全部小说 - 科技之全球垄断 少年书屋移动版 - 少年书屋手机站