Saturday, January 9, 2016

12306 我太土了 都不知道这是啥玩意

http://www.mitbbs.com/article_t/Programming/31466907.html

发信人: totalctrl (沾衣十八跌+降龙十八涨), 信区: Programming
标  题: 12306 我太土了 都不知道这是啥玩意
发信站: BBS 未名空间站 (Sat Jan  9 15:06:41 2016, 美东)

google一下 才知道是铁道部订票的

这玩意没那么 复杂吧

用户访问的确是量大。但是关键是无数的人用机器刷票查询阻塞了网络节点 这个是不
是关键?用机器人自动刷票我认为可以算是攻击了。完全可以拒绝服务。

要我做。上用户注册啊。上个ldap。支持几千万个用户账号认证不成问题吧。不通过
ldap认证的 连查询都不让。通过的 也不让你一秒查好多次。客票资源 更新的次数少
查询座位是否空的次数极多 也符合ldap应用模式 也可以建一个ldap 让你随便查 反正
对查票来说是read only 。买票交易还是要在后台上数据库。一旦票卖出要 后台和
ldap 数据 sync。对于换车买联票产生的race condition 通过数据库解决。


这个事情关键是把client端的机器人block住。一切都好办。 要不你服务器端的业务处
理能力再大 你也架不住再来一个什么老师写一个超牛的客户端 然后把程序搬到离铁道
部网站机房最近的节点上 疯狂的刷 甚至给其他人代理刷票业务 一样把网站搞堵车。

Business logic其实不复杂 优化这个还不如把流程理顺 杜绝最大的问题。要想交通顺
畅 加多少lane都没用。还是要有红绿灯 包括上freeway的红绿灯。

No comments:

Post a Comment