为什么12306时不时要崩那么一下( 三 )
5 第五 , 业务去重需要大量的判断 。 电商业务其实严格来说是不需要用户实名制的 , 也不需要对用户的身份去重 , 只要你付钱 , 有货就发货 , 除非是限购商品稍微拦截一下 , 但是面对黄牛党 , 也就是象征性的挣扎一下 , 毕竟大家都是出来卖的 , 不会跟钱过不去 。 而12306不一样 , 12306的模式是 , 每一个人都要限购 。 同路线 , 同时间 , 要限购 。 就拿北京到珠海举例 , 12306是不允许一个人在同一天购买大量北京到珠海的车票的 , 这对其他人不公平 , 所以要限制人的出发时间和购买路线 。 那么问题来了 , 如果要加限购 , 那么就要把这个人的当前购买信息 , 时间 , 全部缓存下来 , 这个人的每一笔交易 , 都要和他当前的已有行程进行去重匹配 。 这对数据资源的消耗是非常恐怖的 。 并且 , 并且 , 查重还有另一个现实问题 , 就是12306本身是允许非本人买票的 , 就是我可以给我的爸妈买票 , 我爸妈也可以给我买票 , 只要添加乘车人就可以了 , 这就代表着 , 同一个人的信息 , 完全可以在不同的时间节点被不同的买家添加 , 这又带来了巨大的计算压力 。 这就和人生一样 , 太难了 。
第六 , 和12306比流量 , 什么公司都没有资格 。 很多人真的以为双十一就是流量的巅峰的了 , 其实并不是 , 12306才是最恐怖的流量巅峰 。 为什么?因为电商的业务模式不会导致用户重复点击 , 而12306无时无刻不在被所有用户重复点击 。 举个例子 , 你在双十一买东西 , 是不是买了就走了?买不到你就是骂几句 , 然后也走了 。 一个用户的点击是有限的 , 你就算单身30年 , 给你放开了点 , 你能点多快? 要知道对系统而言 , 每一次点击 , 都是一次数据交换 。 12306面对的点击流量 , 要大的多 , 你买票的时候 , 是会不断刷新操作的 , 你在查询余票的时候 , 每一次都是要跑所有的数据库来帮你同步当前的余票信息 , 这个负载量和计算量是天量 。 而且 , 现在非常非常多的人在用抢票软件 。 所谓的抢票软件 , 原理就是不停地用机器去读取12306的数据接口 , 机器的速度绝对是比你单身30年的手速还要威猛几十倍 , 一秒刷几百次 , 1个人用抢票软件 , 可以造成几千个人一起刷产生的数据压力 。 各大抢票软件公司加起来用户几千万是有的 , 14亿人刷出几百亿人的流量都绰绰有余 。 你知道12306的流量负载有多强了么? 在12306上 , 人人都是火影忍者 , 天天影分身 。
6 会有人问 , 既然挑战这么大 , 12306这么不容易 , 那么为什么不去像国外先进技术取经?为什么不去加大投入服务器?为什么还在找借口? 为什么12306不引入国外的先进技术呢? 答案其实很简单 , 国外也罩不住啊 。 早在2012年 , 12306就有公开招标 , 预算不设限 , 只要能解决问题 , 世界顶级机构都来竞标了 , 但是最后基本都放弃了 。 因为当时的技术环境没有人能解决这个问题 。 国外很多技术的确先进 , 但是没有一个国家或者公司 , 历史上接受过14亿人的数百亿级别流量的挑战 , 你能说出来的世界顶级公司 , 没有一家能承受这么强的即时交易流量 。 他们有的流量更大 , 但就和电商业务一样 , 是可以异步操作 , 不需要身份唯一性 , 没有这么复杂的路线存量计算的 , 你们也知道国外的高铁和地铁是什么垃圾水平 , 我们遇到的问题他们从来没有遇到过 。 这是很现实的一件事情 。 全中国14亿人的出行需求面前 , 大家都是一样菜 。
说到这里 , 我想到了我们行业里的一个笑话 , 有个脸书的早期工程师回国加入阿里巴巴 , 离开前 , 他说要去拯救阿里巴巴的数据系统 , 结果回来之后才发现 , 他在脸书遇到的数据挑战 , 和阿里巴巴比起来 , 简直是幼儿园水平 。 在数据挑战上 , 我们遇到的数据挑战绝对是世界最强梯队的 , 很多时候没有之一 。 那么为什么不加服务器呢?技术不够 , 硬件来凑 。 加服务器面临的核心问题有3个 。 第一个 , 加服务器只是增加了储存能力 , 并不能解决数据库的问题 , 这就和一个女人生孩子要10个月 , 不代表你找10个女人就能在1个月内生孩子 。 第二个 , 如何驱动这些服务器?当年阿里云领先世界的技术 , 就是突破了同时驱动5000台服务器 , 成为世界三大云之一 。 要知道 , 阿里云面对的只是双十一 , 而12306的挑战要更加恐怖 , 需要同时驱动的服务器数量更多 , 这也是有技术挑战在的 。 另外 , 阿里云也确实参与了12306的建设 。 第三个 , 成本问题 。 12306往往全年都表现良好 , 只有重大节假日才会偶尔出现崩溃 , 你为了应付一年中为数不多的重大节假日 , 采购了这么多高折旧率的服务器 , 平时根本用不上 , 这是一种浪费钱的行为 。 中国铁路本身就是巨额亏损 , 国家持续补贴的 , 这种情况下 , 为了短时间的需求 , 投入海量的成本 , 这笔账不用多说吧? 你看看隔壁微博 , 宁可每次被流量击溃也不肯长时间维系大量服务器 , 微博看财报每年都是盈利的 , 金额都是按照亿来结算的 , 人家都是这个态度 , 你知道12306有多不容易了吧 。 而且这可都是纳税人的钱 。 到最后 , 买票问题的本质 , 还是供需关系 。 全国这么多人 , 在这么短的时间内要完成这么多的出行 , 远远超过了铁路本身的运载能力 , 在这种供小于求的情况下 , 怎么调配资源 , 都没有办法解决供需问题 。 东西就这么多 , 大家都想要 , 能怎么办呢? 加钱 , 继续扩建? 要知道很多线路只有春节才爆满 , 平时都空车亏损 , 为了满足小部分人短时间的出行 , 大量浪费资金投入到已经富余的路线中 , 并不划算的 。 有这个钱 , 应该去投入到更多的地方 。 12306这种基础设施 , 天然就是挨骂的 , 做的好 , 大家不会夸 , 做的有一点点不好 , 会被骂到死 , 这是基础设施的悲哀 , 所有人都有不合理的期待 。 何况 , 12306在只花了这么少预算的情况下 , 做到现在这个程度 , 已经是超神操作了 。 不考虑资金成本和技术成本张口就骂 , 是一种不太理智的行为 。 怎么不去说人家印度火车卖挂票呢?
推荐阅读
- [老人]“没公德心”免费坐车大妈逼让座,孕妈拿出孕检报告,怒怼大妈为什么老人那么容易倚老卖老?遇到这些倚老卖老的老人要怎么做呢?
- 「鲍某明」为什么财新关于鲍某明的报道,让人心生反感
- 吉安■花儿为什么这样红 ——记金牌导游、吉安市导游协会会长马虹同志
- 【陈陈宝贝an】“你打我,我还手”为什么不是正当防卫?
- 我不是傻傻呀@为什么现在火车上的扒手都消失了,猖狂的小偷都去哪了?
- 「法律读库」为什么不说公安或法院是刑事错案的第一责任人
- 红星新闻■快评丨海底捞为什么要为涨价道歉?
- 『黄茂勋』为什么火车铁轨采用会生锈的钢铁, 不采用不锈钢? 又涨知识了
- 『法治雁塔』为什么要“逆行”武汉?他这样回答
- 尚佳棠■为什么厦门面积这么小,级别却是副省级,外地人以为是省会呢