主题:【原创】无责任推测12306网站遇到的麻烦 -- 代码ABC
第一次登陆成功,然后查询余票这一块速度是相当快的,但是下订单时候被告知连接数过多失败。第二次登录直接失败,被告知连接数过多。
由此来看我不认为瓶颈在数据库,而在中间件,是中间件活动连接数被撑爆了。因为无论你下单还是登陆都需要通过中间件连接db。但是这并不意味着中间件是问题的根源。
我认为中间件的问题是由于用户在站内停留时间过长造成的,大量用户尝试通过中间件连接db,导致任何人的短暂释放连接都会使其下一次尝试失败。
那么什么原因导致用户在站内停留时间过长?很可能是第三方接口,我认为最大的可能是网银。用户在余票查询完毕,下完单支付时会被直接跳转到网银,这意味要么其原有db连接被cache,要么需要在支付完毕后重新连接db,无论哪种方式在当前这种网银支付速度下都是难以接受的。
而从售票系统的查询余票速度很快这一点来看,铁路售票系统的数据库逻辑设计是相当成熟的,我不认为其逻辑设计会造成性能问题。但是订单支付需要直接调用网银界面,那个不仅是慢的问题,成功支付率都不能保证,如此就会直接导致平均每个用户在站内停留时间过长,进而导致其在中间件的db连接失效,最终订票失败。
支付宝的速度快是因为大多数情况下你的支付宝账号里有足够余额,这样就没有第三方接口的问题。所以要解决平均用户停留时间过长的问题要么开发个支付宝,要么用马云的产品。
- 相关回复 上下关系8
🙂不能按售出量算 1 PCB 字109 2012-01-12 10:50:07
🙂当然不能按售票量算 1 代码ABC 字297 2012-01-12 11:09:49
🙂“如果能大致满足注册用户的购票需求” PCB 字90 2012-01-12 11:26:34
🙂我曾经2次尝试过网上购票
🙂远没有7000万人次/天那么多 1 王树 字860 2012-01-11 23:08:24