【技术“瓶颈”】电信分公司-华讯面试题,探讨下解题思想[解决办法]存服务器session中?[解决办法]A操作时,存服
【技术“瓶颈”】电信分公司-华讯面试题,探讨下解题思想
[解决办法]存服务器session中?
[解决办法]A操作时,存服务器SESSION中
SESSION随A的操作init和destroy
用filter在B操作前拦截
可能session不够大
[解决办法]spring aop 好像也有可以做什么preConstruct****这个方法的处理吧?
[解决办法]ajax做动态页面修改,B提交时和数据库数量进行比较
[解决办法]线程问题。实现序列化
[解决办法]用Ajax做,在购买前去数据库查现有值,大于购买值的话直接提交,否则的话提示并刷新现有值。
[解决办法]用js定时器呢?
[解决办法]我的思路如下:
html长连接.对每一个打开商品的用户给予一个长连接.当客户A购买商品7件成功后,立刻通过长连接给予用户B或用户C......的显示商品数量为3或其它提示.通过长连接可以准时准确的给予提示.当用户关闭商品查阅页长连接也会断开.
长连接解决此问题的优点:及时有效.避免了对数据库操作,避免了用户B操作后才告知商品的剩余数量
缺点:长连接的web和应用服务器性能不稳定.不过可以参考FLASH的通讯协议.
[解决办法]一件物品一个定时器。
那样估计你的浏览器都会要挂了吧。。
[解决办法]采用观察者模式,当值发生变化时,及时通知各个操作该数据的用户!
[解决办法]页面定时发送请求
设置一个刷新时间来修改页面中的某些数据
[解决办法]我觉得14楼的意见可以
[解决办法]因为HTTP是无状态的,所以目前大部分采用的非HTTP协议。可以用UDP或其它。
长连接也可以用
[解决办法]长连接需要用到activeX空间吧,要不就要用到applet,不过applete已经用的不多了,而且要做签名
[解决办法]来长长见识
[解决办法]初次听说长连接,学习。
[解决办法]线程问题。实现序列化
[解决办法]可以采用服务器推技术,当A客户购买商品以后,服务器主动将更新后的商品数量推到其他客户上
具体使用方式查看:
http://www.ibm.com/developerworks/cn/web/wa-lo-comet/
[解决办法]在现实中,电子商务网站应该很少有这样的要求,因为如果网站流量大的话,有很多人浏览这件商品,而要做到商品剩余数量的动态现实,一般是通过ajax来实现,这样做会加重服务器的负担,所以这样的讨论实际意义并不是很大!还是通过数据库来完成是最好!
[解决办法]长连接思路不错。
[解决办法]学习了,听起来观察者模式挺好的,只是不知道如何实现呢?
[解决办法]了解 了解 ,看看 长连接
[解决办法]单服务器的话,建立一个被锁定商品数量的全局静态HASH字典。
当客户B点击购买的时候Ajax请求调用购买函数,并根据HASH字典(需要加锁同步)验证数量是否足够。
多服务器的话,麻烦一点点(如果做过此类应该也不麻烦),需要同步多台机器的HASH字典。
[解决办法]
学习了... ...
觉得这个应该可以
还是就是HTML5和RIA到来的时候应该可以解决楼主的问题
还有鼓励一下楼主 这个应该不是技术瓶颈
只是楼主以前没有遇到过而已
如果遇到过后 学不下去 那才是技术瓶颈把
[解决办法]貌似taobao上也会遇到类似的问题,不过看起来他们应该是如果客户确定了购买意向,
会切换到下一个页面输入购买的数量,然后再切换到下一个页面准备付款。
我想在输入购买数量之后,就可以counter
[解决办法]顶14楼
[解决办法]对啦
我常常看到有些软件的下载页面
http://www.maxthon.cn/
会动态显示软件的下载数量
如果不是用Ajax刷新的 那应该就是楼主想要的把
[解决办法]如果需要实时显示的话,对于浏览器与HTTP协议,只有长连接与定时ajax请求两种办法,服务器压力会很大。
可以考虑支持socket操作的浏览器插件,如flash、银光、.net客户端、java客户端等...,这个需要客户端支持。
[解决办法]个人感觉还是用访问数据库确定剩余件数是不是大于需求件数,如果小于就提示错误,再显示新的件数就行了。用Ajax更新是很不现实的,先不谈能不能实现,就算能实现也不可行。如果库存10000件,现在有100个客户在购买,是不是一个人购买另外99个人的画面跟着变?如果人数再多点呢?这样不是顾客的画面那个数字一直变?还有就是对服务器造成的负载量也太大了。
[解决办法]我们公司里面是这样操作的..
在数据库里面商品表里面添加一个长整型的字段.存一个值.然后在A用户购买7件的时候修改这个字段的值.
然后B用户在来修改此记录的时候发现和B第一次拿的这个值和数据库里面的值不同,这样就可以知道这个操作被另一个用户操作,所以提示用户重新刷新..在操作,此时B的页面在刷新后就可以看到只有3件了.
如果有更好的,我也希望学习学习..
[解决办法]说一下,我们公司不是BS架构的..用自己整合的Swing.然后用到的是EJB..
[解决办法]对于访问量较大的互联网程序用长连接做服务器推是很不靠谱的,为了这个屁大点的
功能,需要耗费大量的服务器资源,以为WEB无服务器能够管理的长连接个数是有限的
也就几百个。
对于这样的需求可以从两个方面来做,第一在现实页面用Ajax定期刷新。第二当
客户购买的时候输入购买数量,提交的时候检查库存是否够。能做到这两点我认为就
够了,互联网程的特点本身就决定了这个问题不可能有太好的解决办法,也没有必要。
现实生活中这种并发问题也常有
[解决办法]思路如下:
html长连接.对每一个打开商品的用户给予一个长连接.当客户A购买商品7件成功后,立刻通过长连接给予用户B或用户C......的显示商品数量为3或其它提示.通过长连接可以准时准确的给予提示.当用户关闭商品查阅页长连接也会断开.
长连接解决此问题的优点:及时有效.避免了对数据库操作,避免了用户B操作后才告知商品的剩余数量
缺点:长连接的web和应用服务器性能不稳定.不过可以参考FLASH的通讯协议.
[解决办法]操作时,存服务器SESSION中
SESSION随A的操作init和destroy
用filter在B操作前拦截
可能session不够大
[解决办法]学习中、、、、、、、、、、、、、觉得没必要为这个小功能浪费服务器的资源
[解决办法]
设计模式之Observer
[解决办法]A购买商品的同时数据库商品的数量不就级联更新了么 显示B用户的应该是更新后的数据
[解决办法]同步更新的问题
[解决办法]服务器推技术 比较 赞同
[解决办法]通过线程来解决
[解决办法]应该放在application中,数据共享
但是这样会带来线程安全的问题,只有同步那块代码
但是又会降低效率,
这是一把双刃剑,没有最好的做法,只有更好的做法,要看具体的情况
这是个购物平台,我觉得安全是最重要的
------解决方案--------------------
我首先想到的也是这个 不过线程方面的知识我实在是太少了
[解决办法]请问用什么办法让客户B知道商品的数量已经发生了变化,只有3件???
答:应该是这样,在结账的时候和数据库 的存货量进行比较,如果库存有这么多,结账.
没有,则弹出提示告诉客户只有 3件,我目前的购物车就是这样做的。
[解决办法]学习,学习,我觉得还是观察者模式比较好的,不会浪费太多服务器资源,现在来说服务器的性能还是最重要的,服务器的性能不行,服务就跟不上!
[解决办法]前面有个大虾说要建立长连接,我认为是不可取的,那样的话服务器的负担大大加重,http协议的好处就是建立短连接,这样可以使服务器保持轻载,所有http协议被广泛应用
[解决办法]需要在服务器建立一个缓存数据来处理这种事。
[解决办法]我第一个想法是在有人对该商品进行操作的时候将该商品最新的信息除了更新到库中之外同时保存到application中 然后其他人就去application中去取最新的信息 当没有人对该商品进行关注的时候将application的信息删除掉
其实不一定是非得用什么application 只要能实现这个要求就可以 不过不知道那个面你的人考的是什么哦..
[解决办法]顶这么高了.
LZ可以看一下openFire(开源的).可以支持上万的并发.采用的方式就是长连接.
但是走的不是HTTP协议.
[解决办法]这个顶一下,我说一下我个人的经历,当初我去买火车票的时候(过年回家)看着售票员电脑上的剩余票数明明是8张,但是我稍微一犹豫(考虑是不是买因为是站票),就那几秒钟,说要的时候,售票员,显示器上还是8张,但当点击确定购买时,提示出了票已经售完,我个人理解这个不会及时更新,就像taobao什么的,但是,后来查了一下数据库,然后提示了。。。有没有对这个问题比较有研究的,请教下,谢了。。。