五千年(敝帚自珍)

主题:【原创】无责任推测12306网站遇到的麻烦 -- 代码ABC

共:💬135 🌺246
全看分页树展 · 主题 跟帖
家园 我曾经2次尝试过网上购票

第一次登陆成功,然后查询余票这一块速度是相当快的,但是下订单时候被告知连接数过多失败。第二次登录直接失败,被告知连接数过多。

由此来看我不认为瓶颈在数据库,而在中间件,是中间件活动连接数被撑爆了。因为无论你下单还是登陆都需要通过中间件连接db。但是这并不意味着中间件是问题的根源。

我认为中间件的问题是由于用户在站内停留时间过长造成的,大量用户尝试通过中间件连接db,导致任何人的短暂释放连接都会使其下一次尝试失败。

那么什么原因导致用户在站内停留时间过长?很可能是第三方接口,我认为最大的可能是网银。用户在余票查询完毕,下完单支付时会被直接跳转到网银,这意味要么其原有db连接被cache,要么需要在支付完毕后重新连接db,无论哪种方式在当前这种网银支付速度下都是难以接受的。

而从售票系统的查询余票速度很快这一点来看,铁路售票系统的数据库逻辑设计是相当成熟的,我不认为其逻辑设计会造成性能问题。但是订单支付需要直接调用网银界面,那个不仅是慢的问题,成功支付率都不能保证,如此就会直接导致平均每个用户在站内停留时间过长,进而导致其在中间件的db连接失效,最终订票失败。

支付宝的速度快是因为大多数情况下你的支付宝账号里有足够余额,这样就没有第三方接口的问题。所以要解决平均用户停留时间过长的问题要么开发个支付宝,要么用马云的产品。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河