主题:【原创】身为码农,为12306说两句公道话 -- 代码狗
主要针对楼主的这段话:
这种做法是可以运行的。我原来参与设计的一个ERP系统就是这样的做的。
16个商品方案的优点是商品数会比较少,缺点在于查询性能较低,要查询16次才能知道【北京西到深圳北】还有没有余票。而136个商品的设计,穷举了所有出发和到达站点的组合,出票前只需要查询1次库存就知道还有没有余票。
大部分面向公众的网站,其业务特点都是读多写少。电商系统的库存查询次数更是远远多于库存修改次数的。在秒杀系统中,可能会出现99%的请求查库存1%请求改库存的情况。 像12306春运抢票这种场景,在秒杀工具(抢票软件)的推波助澜下,查询1万次库存才成功出一张票也不是没有可能。
查询性能在这里不是问题,因为查询本来就不应该直接去访问余票数据库,而是应该为余票数据库建多个定时更新的只读副本,把所有的查询流量分散到这些副本上,余票数据库只服务最终下单的请求。这样做的缺点是查询结果和实际余票情况在一定时间内会存在不一致,可能查得到票却买不着。但这在很多人同时下单买票的情况下本来就无可避免。
从服务最终下单操作的请求来看,16 种商品的方案明显优于楼主提出的 136 种商品的方案 —— 这点楼主是否同意?
- 相关回复 上下关系8
🙂知乎上也有人提到了这个问题 汉服骑射 字315 2014-01-14 20:51:39
🙂某些省内短途车全列无座,可能就是这个原因 ziotean 字0 2014-01-20 08:24:05
🙂鬼子的新干线分指定座席和 不指定座席 老驴 字145 2014-01-15 12:54:38
🙂16 种商品的方案明显优于 136 种商品的方案
🙂但是有些问题铁道部也是不可推卸的 2 天空不空 字138 2014-01-13 23:00:48
🙂本来这样做是有道理的 2 汉服骑射 字264 2014-01-13 23:13:22
🙂12306将联网身份认证系统 虚假身份无法购票 天空不空 字157 2014-01-14 22:34:33
🙂注册用户名时候验证身份证号码就可以了 1 铁手 字0 2014-01-16 12:37:26