A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郝强勇 中级黑马   /  2013-3-15 22:18  /  1338 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在web编程的时候,service方法很有可能被多个线程同时访问同一资源,传统的我们使用synchronized同步代码块或是同步方法,但这样一个网站的效率就会很低,如果是实现SingleThreadModel接口的话,也有可能将公用的数据单独起来,也就是Servlet会出现创建出多个对象,效果也不好,况且现在的API已将将其标记为过时,那么,我想问,向访问量比较大的网站,此种解决并发访问的方法是什么啊?

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-16 13:55

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

1 个回复

倒序浏览
等待机制就是当同时连接数超过最大连接数时,后面的连接会等待一段时间,而不是直接报错。在这个等待的时间内,HubbleConnection 会多次尝试和服务器连接,一旦服务器有空闲的连接,等待的连接就可以连接成功。

等待的时间由 HubbleConnection.ConnectionTimeout 这个参数设置,单位为秒,默认为300秒。如果超过这个等待时间依然无法连接成功,则会触发连接超时的错误。

这个改进主要是针对短时间内大量访问的情况。很多中小网站,搜索的访问量不会持续很大,但可能在某个瞬间很高,比如在100ms内同时有50个用户访问,最大连接数为32,这时即使机器的处理能力达到每秒500次,老版本依然可能出错,V1.0.4.0 以后版本,在出现这种问题时就不会再出错了,大量并发时访问时间可能会稍微长一点比如几秒钟,这个视机器性能和缓存设置情况而定。但不会出错,这样对于应用来说会更友好一些。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马