暴风中文 通过搜索各大小说站为您自动抓取各类小说的最快更新供您阅读!

下午。

罗晟依然待在蓝星科技集团,本来今天下午他要去蔚蓝海岸实验室主持一个技术会议的,不过在得知国家铁路集团前来寻求技术支持帮助,他临时修改了一下自己的工作安排,选择优先接见刘副总。

主要是年关将近,国各地的民众尤其是外出务工的农民工都急着赶回家过年,这个群体非常不容易,罗晟觉得自己能为他们做点什么就做点什么,别的不说帮助他们更轻松的买到一张回家过年团聚的车票也是一件很有意义的事情。

况且还能收获一位大客户。

……

此时此刻,公司的一间会客室里,罗晟与刘副总等七八个国家铁路集团的人在一块。

简单见面寒暄了几句,刘副总找到重点话题的切入口,说道“票务系统一期工程的开发费用合计三个亿,包含硬件,这套系统需要结合铁道部信息数据库、还需要结合电话售票、窗口售票等相关数据的结合。不是一个简单的在线交易系统,而是一个国乃至世界最大的大宗物资货运系统。”

过了片刻,随行的一位技术专家也说道“的技术确实非常难解决,利用现有的分布式数据库、缓存、负载均衡技术已经不能满足需求。”

说到这里,这名技术专家看向了罗晟补充道“要知道,在春运的时候,日均有近300亿次访问量。如此天量级别的火车票查询是影响性能的重要原因之一,大概率占了90以上的访问量。更及棘手的是峰谷的查询有天壤之别,几乎没有办法在成本和并发能力之间做一个好的平衡。”

倾听着的罗晟默默的点点头,逝者对方把话说完之后,他便问道“你们和阿里的合作是怎么解决的?”

那名技术专家坦言“现在的做法是从几个关键入口流量控制,保障系统可用性,但是会影响用户体验,仍然出现网站宕机、打不开的现象,已经遭来一片骂声。”

说着那名技术专机也是苦笑的摇了摇头。

刘副总也说道“阿里免费给提供技术支持,但是技术还是不够硬,我们现在就把希望放在星云上了。”

罗晟不由得一笑,也是耿直的说道“刘总,首先我可以肯定的给你一个回复,星云系统完没问题,同时我可以保证在一周之内就能实现为量身打造一整套从软件到硬件的完整解决方案,但这个解决方案不会像阿里一样免费支持。”

刘总哑然,也是一笑,道“愿闻其详。”

罗晟思量了片刻,迅速组织好语言便说道“如果星云支持系统以后,把网站查询访问放到星云上。一般而言,查询是多数售票系统访问量最大的部分,刚刚也听你们的专家说了,90左右。在交易相关的过程中,都会多次提交查询请求,更不要说现在有大量刷票软件的出现所带来的额外增加的工作负载了,这一切都让余票查询系统成为整个系统的压力集中地。”

“我的解决方案是,星云介入后,把余票查询模块和现有系统做分离,具备独立部署的能力;在云端上独立部署一套余票查询系统,这样和云上都有了一套余票查询系统,调度会更为灵活,目前星云集群服务器规模已经达到了台以上。”

在场的几位铁路集团的技术专家一听也是暗暗咂嘴,难怪阿里的“飞天”系统这么不禁打,前者勉勉强强破千,而后者已经达到了5万规模之巨,难怪罗晟会这么有信心。

接下来,罗晟主要与铁路集团的几名技术专家讨论。

“今天上午我在得知消息顺带简单研究了一下‘’的服务端架构。”罗晟面向众人有条不紊的说道“广大访问者都在喷,但是我知道服务一上线试运行,就承受着这个世界上任何秒杀系统都无法超越的qps,上百万的并发再正常不过了。”

在场的几名铁路集团的技术骨干人员内心稀里哗啦的感动,理解万岁啊。

不懂技术的领导最难沟通,觉得没有尽力。

罗晟的话还是很有分量的。

过了片刻,罗晟补充道“高并发的系统架构要采用分布式集群部署,服务上层有着层层负载均衡,并提供各种容灾手段,所谓的容灾手段就是双火机房、节点容错、服务器灾备等。保证系统的高可用,流量也会根据不同的负载能力和配置策略均衡到不同的服务器上。”

“即便如此,集群中的单机所能承受的qps也是非常高的,那么如何将单机性能优化到极致呢?要解决这个问题要先弄明白一件事通常订票系统要处理生成订单、减扣库存、用户支付这三个基本的阶段,系统要做的事情就是保证火车票订到不超卖、不少卖、每张售卖的车票都必须支付才有效,还要保证系统承受极高的并发。”

几名铁路集团的技术专家连连点头表示认同,技术痛点就在这里。

罗晟继续说道“下单减库存。当用户并发请求到达服务端时,首先创建订单,然后扣除库存,等待用户支付。这种顺序是我们一般人首先会想到的解决方案,这种情况下也能保证订单不会超卖,但也会产生一些问题,第一就是在极限并发的情况下,任何一个内存操作的细节都至关影响性能,尤其是像创建订单这种逻辑,基本都需要存储到磁盘数据库的,对数据库的压力是可想而知的,应该是用的甲骨文数据库,别花这个冤枉钱了,放到我的星云上。”

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

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

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

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

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

找对人了!

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

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

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

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

//localspike包结构体定义

package localspike

type localspike strubsp; {

localstobsp; t64

localsalesvo t64

}

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

package reotespike

//远程订单存储健值

type reotespikekeys strubsp; {

……

……

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

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

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

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

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

……

暴风中文推荐阅读:快穿:恶女勾勾手,男主昏了头原来我是一个天道反派团重生了瘟疫医生全球进化,我觉醒了一座世界我托雷基亚,这辈子想做个好人史上最慢快穿绝代风华之末世之王我在星际开饭店星际上山赶海美食不断末世重生之带娃修行","copyright":"从零级开始穿梭诸天四合院不甘心的许大茂我的一天有48小时末世多子多福:我打造最强安全屋!末世:坑蒙拐骗杂货铺末世:恶女囤了百万物资游戏灾难:从获得神级金卡开始末世细胞学星际江湖之异形王星系霸主之仙云星系战记末世重生,囤货百亿顺带谈个恋爱黄金耳八云家的大少爷末世杀戮:无限空间之异能王者不务专业的歌手带着异形去修仙美漫事务所:开局宠物汤姆和杰瑞战域时代:开局觉醒神级天赋我在天灾,打造生命星球回到末世前:我无敌了藏身处:从街区开始攻略实验室末世穿书:主角种田我填坑!末世重生:我的酒店物资无穷尽希望犹在之第一部风卷龙旗高武:邪君降临落叶战记末世反派系统,成为阿姨们的噩梦我在末日文字游戏里救世都市之最强DNF系统被全家读心后,假千金成了团宠进击吧,末日铁甲师兄,你别跑梦境互联辅法王座快穿黑心莲:恶毒女配撩疯了身软小人鱼捡垃圾,全星际心疼哭帝国的朝阳极寒末世,我随身携带安全堡垒星际从分解万物开始
暴风中文搜藏榜:穿成星际唯一人类,各路大佬疯抢新元纪快穿系统:男主又重生了龙珠之道问诸天生存游戏:从一只乌鸦开始全球领主:开局成为沙漠领主末日丧尸之我还是主角?零元购,我把渣爹老窝一锅端快穿撩情:嚣张boss,我宠的外来异星群星:我没输过,你说我是战犯?洪水末日:我打造了海上城市末世降临:我招收下属,获得百倍物资末世公寓截胡S级房车,我在逃亡中收美女分身分身闭上嘴,让我来说你是谁万界信用卡拐只狐狸带回家快穿:炮灰女配,颤抖吧紫瞳医圣末世大回炉最强寰宇主神此刻,全球极夜诸天BOSS群轴承曝光我成首席科学家阴阳食谱绝密试验档案穿越之虫族主宰在异界末日模拟器,我以剑道证超凡揣了反派龙君的崽后我跑路了异闻录我用铠甲闯末世重生末日前三天星穹铁道:神级附魔师,重铸造物引擎诸天次元交易所恐怖机场末世重生之凤归来奇妙的异世界旅行穿越到一九八零全球断电:重返冷兵器时代星际之大演绎家末世:别人囤物资,我直接建城日月星辰伴我眠,虫生异星当帝皇沐蓝星球3:星空学院维度进化战争余生伴星眠宝藏猎人江宪快穿之炮灰逆袭人生生存游戏,我从吸收核辐射开始!末世:反派会催眠,女主遭不住
暴风中文最新小说:地球不屈:混沌秩序世间诡异时代:从丧尸末日开始末世摆烂她是认真的重生末世:我金手指巨粗!黑塔档案末世?她什么都有,还能打末日归途:带着家人杀出鹰国我在末世开超市全民地窟求生:只有我掌握地窟地图穿成顶级疗愈向导,全员为她痴狂修仙大佬穿兽世,众兽夫疯狂倒贴我在水灾游戏里搞经营基建天灾倒计时,我嘎嘎囤了百亿物资【人类补完计划:丧尸基因库】探索塔罗牌的神秘世界我的逆天大哥末日曙光:异界征途百日登神:从炼假成真开始快穿,好孕系统拯救绝嗣大佬末世:怪物入侵,我靠打丧尸崛起惊!末世来了,我靠快递车苟活末世之异能纪元公路求生:开局征服女明星娇雌万人迷,顶级雄性夜夜争欢末日:一秒一盒自嗨锅,校花跪求我收留末日积分:系统逼我单挑全球丧尸黑雾末世:无限物资从囤积女神开始末世:丧尸爆物资,我的爆率有亿点强!第41周生存报告恶毒雌性被流放,养了一群恶兽公路求生:每天五次绝对提升!我与AI的宇宙大冒险香软好孕小雌性!六个兽夫争铺床末日:一秒一盲盒,极品女神求收留钢丝管家:冰封归途末日游戏:负状态缠身,我被萌系少女救赎灵笼:奸诈者末日捡到傻白甜后,我靠系统横扫废土三国!大汉40K跨过8900亿光年我带着不靠谱的系统闯末世我在赛博游戏里当咸鱼丧尸狂澜之逆转绝境末世返利:疯狂供养后,美女们都倒贴末日:变成丧尸的我有个人类妹妹快穿:好孕兔子精被反派日日缠天启算法末世爆肝抽卡带着女团杀穿尸潮脑透穿越星际,我把机甲练成了傀儡