本篇文章4443字,读完约11分钟

我曾经在淘宝上写过一段代码,2012年,我在一家百强民营企业担任电子商务副总裁。当时,我带领团队在极其困难的条件下开发了一个b2c网站,并采取了支付宝和银联的支付渠道,年营业额几千万(当然,这是太少了,我只是说这个网站已经投入实际运行)。

当时,我对“12306”嗤之以鼻,认为他们做得很糟糕,我可以带领一个团队花数百万美元在半年内把工作做好。所以我傲慢地想为他们制作一个开源的预订系统。我花了一周时间考虑建立一个数据模型。当我思考库存步骤时,我发现“12306”的库存复杂度比淘宝和京东高很多倍,计算量也大很多倍。传统的分布式数据库、缓存和负载均衡技术不能满足“12306”的要求。

网友技术贴分析12306:已接近技术极限

淘宝的技术的确比“12306”强大很多倍,而淘宝目前的系统花费的金钱、时间和人力是“12306”的10倍。根本原因是铁路运力不能满足春运需求,淘宝解决不了这个问题。

“12306”在过去的一年里取得了巨大的进步。从前端的动画验证码、分时票,到后端的小型机、虚拟化、内存数据库的使用。可以说,这是中国官方部门打造的最强大的网站(电子商务系统)。至于“12306”一期工程,无论是3亿元(含硬件)还是不贵,我只提供一个数字供参考:百度每年的研发费用(不含硬件)是10亿元,这来自百度的财务报告。3亿元似乎是个大数字。它确实用于超大型电子商务系统和搜索引擎系统,但它不是天文数字。

网友技术贴分析12306:已接近技术极限

你不知道“第二次杀戮”

为什么峰值压力很高,为什么“12306”的动态库存很复杂?

让我们先来谈谈秒杀。

大约在2013年12月25日,天猫举行了一次圣诞季积分交换活动,持续了几天。25日上午10: 12,15,000个天猫魔盒被释放,根据交易记录,它们在19秒内全部被抢劫。

实际上,我也参加了第二次杀戮。那天的话题很简单——请输入××汉字的拼音首字母。我完成了答案,并在5秒钟内提交了订单。结果,系统告诉我排队的人太多了,挤不进去,并提示我14秒后再试一次。人太多是因为话题太简单,门槛越低,5秒钟内挤进来的人就越多。如果将题目改为“大亚湾核电厂能产生多少2克浓度为3%的u235度电”,5分钟内不会有15,000人与我竞争。

网友技术贴分析12306:已接近技术极限

我想,14秒钟后,我将一无所有,所以我再次回答了这个问题,并取消了它。结果,服务器上出现了错误的页面。刷新几次,峰值就结束了。

淘宝的技术水平是什么?淘宝至少有4000名技术人员和至少40000台服务器(这是两年前的公开数据)。2013年11月11日,营业额为351亿元,2012年全年营业额超过1万亿元。

淘宝有各种独立的研发团队:服务器和交换机;操作系统、网络服务器、java语言虚拟机、数据库、负载平衡器和java运行容器。淘宝还拥有无数的开源项目和中间件,如高性能java通信中间件hsf、分布式数据库中间件tddl、异步消息系统notify等。

以淘宝的技术水平,我们不可能让每个用户在杀人时都感到拥挤。为什么?

首先,我们应该尊重物理学原理。服务器一秒钟能承受的计算量是有限度的。无论你如何优化它,无论算法和编程语言有多高效,你都无法突破某个极限。例如,由汽车发动机驱动的f1赛车无法突破每小时400公里的速度。

其次,我们应该考虑经济效益。在“十一五”黄金周期间,从北京主城区到八达岭长城的道路被完全封锁。然而,由于黄金周的高峰期,这段路无法建成像长安街那样的10车道高速公路。否则,平时修一段路和干谷子就要花费天文数字(3亿元仅够修1-3公里)。

淘宝目前的硬件和带宽已经超出了日常运营的需求,目的是为大规模促销留有可观的利润。

让我们谈谈动态库存。

淘宝杀死天猫的时候,只有一个sku,库存是15000。如果一个人杀了人,库存将减少1.19秒并售完,每秒钟将成功生成789个订单。想象你在广场上卖火车票。一秒钟内,80,000人拿钱对你喊:卖给我!

许多人都知道小于秒的时间单位是毫秒、皮秒和飞秒。然而,在交易系统中注册一笔交易并不像在原子核周围运行一个电子那样简单。它必须做这些事情:检查它是否被恶意访问,获取系统时间,获取客户的默认交货地址,检查客户的扣球资格,生成订单号,将客户id系统时间订单号交货地址写入订单系统,扣除客户的Tmall点数,减少一个商品库存,标记客户(每个人只能有一秒钟),等等。一切都需要几毫秒。这些操作的总时间可能接近1秒,但由于淘宝的服务器比较硬,采用分布式和集群技术,结果比1秒好一点。然而,即使有10,000台服务器,这一时间也不能被稀释到万分之一秒,因为只有一种商品,它有15,000个库存,只有一行相应的数据库记录,所有的交易请求都必须在这里处理。

网友技术贴分析12306:已接近技术极限

您能否将这15,000个项目分成5,000个项目,并将其分发给5,000台服务器?5000台服务器不能同时处理吗?答案是否定的,首先,5000个产品意味着5000个产品详细信息页面和5000个购买按钮,这对早期营销和排水来说是一个灾难。基本上,它不能用作排水门户,这显然违反了业务管理的原则,并人为地增加了信息混乱的程度。其次,杀死天猫的魔盒没什么大不了的。即使按照399元的官方价格计算,这也将是一笔600万元的交易。如果600万元的交易要花费这么大的支持成本,那是不经济的。第三,淘宝拥有超过10亿的商品,这数十亿商品的展示、交易和管理最初是分布在成千上万的服务器上。不再需要根据库存将每种商品分成多种商品。

网友技术贴分析12306:已接近技术极限

这789个人已经拿到了,但他们可能不会支付,所以这就带来了取消订单和重新恢复库存的问题。想要它的消费者会认为还有机会,并继续在前台刷一会儿。最终,这个峰值将被热情的消费者刷30秒到1分钟。

12306的“异常”库存

好了,在谈了很长时间的淘宝网之后,让我们回到“12306”的话题上来——我以北京西至深圳北的g71高速铁路为例。它有17个车站(北京西站是01站,深圳北站是17站)和3个座位(商务,一等,二等)。从表面上看,这不是三种商品吗?g71商务区、g71一级区和G71二级区。正是在这里,大多数呕吐的人最先跌倒。

实际上,g71有136×3=408种商品(408个Sku)。它是如何计算的?请看:如果你从北京西卖,有16种销售方式(因为后面有16个站),北京西:保定、石家庄、郑州、武汉、长沙、广州、虎门、深圳……都是独立的商品。

同理,石家庄有15种下车方式,类推,有136种车票:16+15+14...+2+1 = 136。每张票有三种座位,总共有408个项目。

看看如何在出票时减少库存。由于商务舱、一等舱和二等舱的座位数是独立的,所以库存操作是一样的。我不会提到座位的不同,只讨论出发和到达站。此外,接下来是一个理论模型,而不是“12306”数据库是这样设计的。

如果乘客甲购买北京西站(01站)到保定东站(02站)的车票,北京西站到保定东站的货物库存将减少1。同时,从北京西到石家庄、郑州、武汉、长沙、广州、虎门和深圳的商品库存也将减少1。也就是说,从北京到保定东的机票实际上会减少16。

这不是最复杂的。如果乘客B购买北京西站(01站)至深圳北站(17站)的车票,除北京西站至深圳北站的货物库存将减少1件,北京西站至保定东站、石家庄、郑州、武汉、长沙、广州和虎门的货物库存也将减少1件。保定东至石家庄、郑州、武汉、长沙等15个车站。

当然,不是每张票的库存都是这样实时计算的。根据往年的运营情况,高峰时段可以提前售票,如北京到武汉的长途稍多,保定到石家庄的短途稍少。我没有证据证明铁路部门有这样做,但我相信这个手动预分配策略自“12306”网站不存在以来就一直存在。

想象一下,80,000人拿着钱对你大喊:把它卖给我。你终于在钱堆里找到了一只手,拿了他的钱,转身去找120个同事,告诉他们减少库存,而这120个同事被像你这样的8万人包围着;像你一样,每次你卖出一件商品,你都需要找几十个人来减少库存……这就是“12306”动态库存的变态。任何你经常购物的网站的库存机制都要复杂几十倍或几百倍。

网友技术贴分析12306:已接近技术极限

空谈论技术对于解决问题毫无用处

防止软件抓票并不像添加图片验证码那么简单。通过机器暴力破解图片验证码有六种方法,在抓票插件中使用了ocr识别。你能使验证码更复杂吗?有些人不得不再次提出自己的观点:这只是对大学生和办公室白领来说更便宜,而且农民工甚至连26个字母都认不出来。他们怎么能做到呢?从事动画验证码,有人说,视力不好的人怎么办?最后,验证码变得非常简单,每个人都很开心。事实上,最开心的公司是开发抢票插件的公司。

网友技术贴分析12306:已接近技术极限

即使采用机器无法识别的验证码,也无法抵抗社会工程的破解方法。招募一群在网吧玩游戏的年轻朋友。每次你成功地输入50个验证码到1元,或者等值的虚拟货币和游戏设备,我保证有无数人想赚到这笔钱。这笔钱对于倒卖门票的利润来说是可以接受的。有什么技术可以防止社会工程的崩溃吗?唯一能阻止青少年在网吧上网的验证码是“大亚湾核电站能产生多少千瓦小时2g浓度为3%的u235”。

网友技术贴分析12306:已接近技术极限

上面的讨论只是把“12306”看作是一个从零开始的交易系统,没有像淘宝这样的历史包袱。事实上,它不是。在它背后的售票池中有许多传统的渠道,如电话售票、火车站售票和销售点售票。除了客运服务,“12306”拥有中国最大的散货运输系统(可能也是世界上最大的)。谈论技术是不可能解决春节期间抢票的困境的。

其他人说肯德基的食物可以单独出售或包装出售。为什么你没有像我一样想出这么多的贼鸥?这是因为肯德基店“人肉查询”的频率很低,所以没有必要为了优化查询性能而设计这样的库存结构。(原作者是“代码狗”,本文节略,标题由编辑添加)
06:54东方财富: 虫子害怕厕所,油炸和雕刻。?3.模纸锻造,模具模具模具模具模具模具模具模具模具模具模具??. 95镣铐和镣铐??0.07%锝58.....

网友技术贴分析12306:已接近技术极限

当前流行度:0

[娇娇]http://itougu.jrj/view/189514.j.....

当前流行度:0

1.1 .涓涓细流??邦邦、邦邦、邦邦、交邦和廖廖??要坚强,要坚强。.....

当前流行度:0

你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道........

当前流行度:0

缇落入三条锁链??3镝??6铥??0(乌桕脂含有3条链吗??4镝??4铥??0)死,死,死,死又死,4.72??......

当前流行度:0

那墙,墙,墙和墙呢??钳子里有丰富的镰刀、叉子、叉子、nan和链条,这些都是銮棒的来源.....

当前流行度:1

你想挑起镝,破坏哮喘吗??缇,汤,汤,3汤和柊镶嵌??链条??4."敌鲁,缇,汤,汤,汤."??.....

当前流行度:0

咸丰、大树、细垴、十二寸、相互涓涓??环秀细链,涓涓细流,砸铙钹,甩铙钹,砸铙钹,砸铙钹,砸响,砸得咝咝作响??葛格·岳格·柊.....

当前流行度:0

来源:济南日报

标题:网友技术贴分析12306:已接近技术极限

地址:http://www.jy2z.com/jnxw/7731.html