为什么12306时不时要崩那么一下( 二 )

为什么12306时不时要崩那么一下

这就代表了谁也不知道需求的流量会是多么的突发 , 购买的内容会是多么复杂 。 我再举一个例子大家就懂了 , 微博厉害吧?每天这么大的流量 , 这么多的关注度 。 但是为什么经常突然一个明星出轨或者结婚或者负面新闻 , 微博就要挂掉?是没有技术实力还是服务器资源不够? 都不是 , 是因为这种流量是突发性的 , 谁也不知道会突然出现这种爆炸增长 , 所以服务器就挂掉了 。 这就和泼水节上大家都做好了心理准备 , 但是你泼开水一样 。 这谁遭得住啊 。 所以建议所有明星出轨之前 , 先微博报备一下 , 这样他们出轨的放心 , 我们吃瓜吃的也安心 。 他好 , 我也好 。

为什么12306时不时要崩那么一下

4 第三 , 电商业务不是一个一次性要完成所有流程的业务 , 但是12306必须一次性完成 , 这进一步加大了难度 。 大家思考一下 , 电商购物 , 实际上是并不是一次性的 。 一个典型的电商购物流程是 , 浏览 , 和商家撕逼价格 , 下单 , 和商家撕逼运费以及快递 , 物流发货 , 买家收货 , 和商家撕逼售后 。 即使排除撕逼这些事情 , 电商购物流程也是有很多节点的 。 整个流程下来最快最快次日达也要24小时 。

为什么12306时不时要崩那么一下

这就代表电商的数据压力没有想象中那么大 , 可以异步处理 , 完全可以先全部付款完成 , 然后再慢慢处理发货 , 然后再慢慢处理售后 。 就像你要刷B站 , 又要烧开水 , 你完全可以先烧开水 , 在烧水的过程中刷B站 , 这就是异步的好处 , 可以同时多任务并行 , 而且不影响用户的核心体验 。 你下单后3小时发货和5小时发货 , 不影响用户 , 容错率高 。 而12306不一样 , 卖票就是要立刻完成 。 从下单 , 到付款 , 到锁定票 , 都是一气呵成的 , 没有任何缓冲时间 , 不存在我下单一个票2天后告诉我成功或者失败这种事情 , 头都给消费者打爆 。

为什么12306时不时要崩那么一下

所以12306等于是没有这种缓冲周期 , 需要直面所有的流量 , 在最短时间内满足所有人的所有需求 , 所有的业务都要在极短时间内处理完成 , 这就是会被一下子塞满 。 同样是1亿用户 , 4个步骤 , 电商可以分4个步骤淡定处理 , 每个步骤处理1亿流量 , 而且可以分多小时 , 多天处理 。 12306就只能一口气处理4亿 , 没有缓和 , 这个压力可想而知 。 我们都知道 , 再厉害的东西 , 被强行塞满 , 都是会坏掉的 。 你们不要瞎想 , 我说的是公路 。

为什么12306时不时要崩那么一下

第四 , 电商业务的库存管理是相对简单的 , 而12306是极其复杂的 , 复杂到我给你简单讲讲你都会抑郁 。 想想看 , 作为电商平台 , 管理货物虽然也有难度 , 但本身的统筹不过固定产品的增删改查 , 有多少就是多少 , 付款了就减一 , 上量或者退货就加一 , 顶多出现最后一个商品被2人同时拍下的小概率事件 , 这都是小事儿 。 而12306是完全不同的难度 , 二者难度差别大概相当于草履虫大战那美克星人 。 我举个例子 , 如果你是一个在北京读书的人 , 家在北京南边 , 过年要回家 。 随便选一辆北京往南开的车 , G65这辆高铁 , 北京始发终到珠海 , 一共17个站 , 共计10小时55分钟 。

为什么12306时不时要崩那么一下

就这一个路线 , 17个站 , 支持随意站上车 , 随意站下车 , 会有多少种可能性? 因为坐车不可能只做单站循环 , 就是不能北京到北京 。 所以是从1加到16 , 一共136种可能性 , 注意哦 , 电商同样的场景只有增删改查4种可能性 。 这样一个线路的实时库存 , 做起来是非常令人头大的 。

为什么12306时不时要崩那么一下

假如有人买了从北京到广州 , 那么对应的所有库存就要减1 , 但是广州到珠海的库存不减 。 假如有人买了从武汉到珠海 , 那么对应的就是武汉到珠海沿途所有线路的库存减1 , 但是北京到武汉不减 。 假如有人买了石家庄到漯河西 , 那么北京到保定 , 北京到石家庄不用变 , 漯河西到珠海段 , 不用变 。 其余所有可能性都要变 , 因为只要经过这两个站点的路线 , 都受到影响 。 实际业务中 , 这样的变动 , 会导致整个库存实时变动 , 并且是P级别的数据变动 , 如果对数据库稍微有所了解 , 都知道这种数据变动对于资源的消耗有多么恐怖 , 一个1GB的电子表格跑查询都能把很多高性能电脑跑崩掉 , 早期电子表格甚至限制在6万5千行 , 就是防止把电脑跑崩 。 而这种级别的数据 , 需要消耗的资源说出来都违反广告法 。 所以为什么12306夜里11点到早上要维护?这样的数据库如果不是天天维护保护缓存 , 早就彻底完犊子了 。 每一天 , 12306都是拿命来奋斗 。 所以之后买票的时候 , 要宠溺一点 , 温柔一点 , 你买的不是票 , 是工程师们的头发 。


推荐阅读