MyException - 我的异常网
当前位置:我的异常网» Java Web开发 » 【技术“瓶颈”】电信分公司-华讯面试题,探讨下解

【技术“瓶颈”】电信分公司-华讯面试题,探讨下解题思想解决方法(2)

www.MyException.Cn  网友分享于:2015-08-26  浏览:21次

单服务器的话,建立一个被锁定商品数量的全局静态HASH字典。
当客户B点击购买的时候Ajax请求调用购买函数,并根据HASH字典(需要加锁同步)验证数量是否足够。

多服务器的话,麻烦一点点(如果做过此类应该也不麻烦),需要同步多台机器的HASH字典。
------解决方案--------------------
学习了... ...

探讨

可以采用服务器推技术,当A客户购买商品以后,服务器主动将更新后的商品数量推到其他客户上
具体使用方式查看:
http://www.ibm.com/developerworks/cn/web/wa-lo-comet/

------解决方案--------------------
貌似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不够大 
 

------解决方案--------------------
学习中、、、、、、、、、、、、、觉得没必要为这个小功能浪费服务器的资源
------解决方案--------------------
Java code

设计模式之Observer

------解决方案--------------------
A购买商品的同时数据库商品的数量不就级联更新了么 显示B用户的应该是更新后的数据
------解决方案--------------------
同步更新的问题
------解决方案--------------------
服务器推技术 比较 赞同
------解决方案--------------------
通过线程来解决
------解决方案--------------------
应该放在application中,数据共享
但是这样会带来线程安全的问题,只有同步那块代码
但是又会降低效率,
这是一把双刃剑,没有最好的做法,只有更好的做法,要看具体的情况

这是个购物平台,我觉得安全是最重要的
------解决方案--------------------
探讨
应该放在application中,数据共享

文章评论

程序员都该阅读的书
程序员都该阅读的书
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
如何成为一名黑客
如何成为一名黑客
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
编程语言是女人
编程语言是女人
程序员的鄙视链
程序员的鄙视链
每天工作4小时的程序员
每天工作4小时的程序员
鲜为人知的编程真相
鲜为人知的编程真相
旅行,写作,编程
旅行,写作,编程
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
 程序员的样子
程序员的样子
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
总结2014中国互联网十大段子
总结2014中国互联网十大段子
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
程序员和编码员之间的区别
程序员和编码员之间的区别
那些争议最大的编程观点
那些争议最大的编程观点
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
程序员必看的十大电影
程序员必看的十大电影
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
代码女神横空出世
代码女神横空出世
程序员应该关注的一些事儿
程序员应该关注的一些事儿
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
中美印日四国程序员比较
中美印日四国程序员比较
老程序员的下场
老程序员的下场
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
我是如何打败拖延症的
我是如何打败拖延症的
为什么程序员都是夜猫子
为什么程序员都是夜猫子
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
漫画:程序员的工作
漫画:程序员的工作
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
Java程序员必看电影
Java程序员必看电影
一个程序员的时间管理
一个程序员的时间管理
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有