论坛首页 招聘求职论坛

一道调优的银行面试题目

浏览 9888 次
精华帖 (1) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-04-27  
可以考虑离线操作,先将操作的结果保存在本地,再后台与远端的服务器同步数据
0 请登录后投票
   发表时间:2011-04-27  
Tank03 写道
freish 写道
vpn,虚拟专用网

 

 同上,

正解

0 请登录后投票
   发表时间:2011-04-27  
缓存是必要的,这些楼上的同学都说了。但不管怎么缓存,还是有一些操作必须是实时通信的。木桶原理告诉我们,这些地方没有优化,也会是瓶颈的,所以如何优化这些也是关键问题之一。我的想法是系统间的这些实时通信可以使用长连接的方式,这样可以保持数据链路的畅通,这就好象咱们数据库中的数据源缓存。
0 请登录后投票
   发表时间:2011-04-27  
如果等到操作产生,再去建立数据链路,那也是很花时间的
0 请登录后投票
   发表时间:2011-04-27  
iOracleSun 写道
根据LZ这个命题,慢的最重要原因在于网络太远,网络速度不行导致的,无非就从缓存,减少数据传送,预读等方面考虑;如在中国架个缓存服务器,缓存的数据主要在于非实时数据(如非帐户资金等),仅保留简单的实时数据进行传送;另外可考虑起用压缩http包;也可考虑预读一些相关数据,保证用户下一步操作时数据已经在中国本地;



0 请登录后投票
   发表时间:2011-04-27  
一般是买proxy,有很多这种提供商的
0 请登录后投票
   发表时间:2011-04-27  
fory 写道
Tank03 写道
freish 写道
vpn,虚拟专用网

 

 同上,

正解

+1

0 请登录后投票
   发表时间:2011-04-28  
我刚才在公交车上又想起了这个问题,时间比较长,我就从头到尾的考虑了一下(以ATM上的操作来考虑的),由于我不是做银行业务的,考虑得不周的地方请别介意呀!
首先咱们回想一下取钱的整个过程的界面,是不是除了一些必要的数据之外,没有什么别的内容了呀,所以缓存在这里应该是行不通的,因为这里只有用户个人数据,这些不适合做缓存。

我们再回想一下,当我们取钱时输入一个错误的密码时,还是可以进行操作的(比如存钱),只有在查询帐户余额和取钱时才会报密码错误,也就是说判断密码错误是在这里进行的。

下面分解这个用户的操作:
1)插入银行卡;
2)输入密码;
3)查询余额;
4)取钱;
5)取卡退出.

从第一步操作完成到第三或第四步操作的产生,大概需要5-8秒的时间,我认为在这段时间里,可以适合做数据预读。即在插入卡后,中国服务器就拿用户的卡号从外国本部取回数据放到用户的私有内存当中(一般可能是session吧),我想一些必要数据的预读,5秒应该也差不多了。

查询余额可以用session中出,但取钱这一操作一定得由本部服务器完成,这个也应该是实时的,这个操作的优化,据我的经验,应该是使用http长连接,什么vpn之类的优化,如果没有加上长连接,发挥的作用应该不大。我们项目各子系统,都还是内网,它们之间的通信都是使用长连接,不然可能挺不住。因为这些操作都是数据量不大,但是通信频频。如果每次都建新连接,那都是很耗性能的,并且也很耗时间。

好了,我的分析就到这里吧,要上班了。分析得不对,还望同学们多指点!
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics