光想想这并发量头就发麻,不像天猫双十一是短时间并发,12306 是一出票就双十一。
火车票是一个基于库存又需要 100%正确的销售,同时还有神奇的乘车区间合并拆分以及车票的排列组合,光是想想就很困难呀。
个人觉得12306 现在应该是世界上业务逻辑最复杂的系统之一吧,大家觉得呢?
是的,都说阿里的并发控制牛逼,跟12306比起来跟本不算什么,购物网站说到底就是客户在A店买一个规格是B的商品C,只要A-B-C这个地方减1就行,而12306是按区间售票的,很复杂
12306 的难点不仅仅是向用户提供服务, 还的和 bypass,携程,飞猪 这些抢票软件做斗争, 普通用户 1 秒 5 个请求不得了了,而这些抢票软件的服务器 1 秒发出几千请求就和眨眼一样简单。
并发不大 主要考虑的是一辆车首发放票的问题
例如 上海到南京 一趟列车 1w 个座位,放票 1w 张,你认为最终有效请求就是 1w。这是一个商品秒杀的逻辑
但问题在于 对于 12306,这 1w 的成功请求最终会产生数据的裂变。1w 个成功请求中 有 5000 个是上海到无锡的。那么就又会产生 5000 个无锡到南京的票可以被“抢”(请求)。这样一趟列车的可成功请求数就变为了 1w+5000 =1.5w 请求。 如果有 3000 人买的是 苏州到无锡的票。就会产生 3000 张上海到苏州 3000 张无锡到南京的票。加上之前的 总计是 1w+5000+3000+3000 = 2.1w 请求。
这个已经不是“普通小电商秒杀的水平”。涉及到了巨量复杂的余票计算和查询。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。