论坛首页 Java企业应用论坛

web支持高并发

浏览 18992 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-03-09  
不知道从何时开始,有个傻X开始乱用“并发”这个词,但自己也没明白怎么定义并发;
我觉得WEB应用主要是衡量 单位时间内处理的请求数量 和 能够正常进行更新操作的连接数极限
0 请登录后投票
   发表时间:2013-03-21  
nkadun 写道
不知道从何时开始,有个傻X开始乱用“并发”这个词,但自己也没明白怎么定义并发;
我觉得WEB应用主要是衡量 单位时间内处理的请求数量 和 能够正常进行更新操作的连接数极限

牛逼啊,让我深刻理解了傻x的定义。
0 请登录后投票
   发表时间:2013-03-22  
Kisses99 写道
nkadun 写道
不知道从何时开始,有个傻X开始乱用“并发”这个词,但自己也没明白怎么定义并发;
我觉得WEB应用主要是衡量 单位时间内处理的请求数量 和 能够正常进行更新操作的连接数极限

牛逼啊,让我深刻理解了傻x的定义。

是的,混淆视听~ 擦
0 请登录后投票
   发表时间:2013-03-22  
nkadun 写道
不知道从何时开始,有个傻X开始乱用“并发”这个词,但自己也没明白怎么定义并发;
我觉得WEB应用主要是衡量 单位时间内处理的请求数量 和 能够正常进行更新操作的连接数极限

不要这么激进,高并发还是有应用场景的,就像LZ提到的http长连接,需要维持很多链接,但并不是每个链接都有请求发生,有可能一部分链接是空闲的。
0 请登录后投票
   发表时间:2013-03-22  
http长连接? 有何意义? 你请求个ajax还不是一样要重新建立一个tcp链接!
并发? 你讲的是类似单核并发还是多核并发? 拿单核跟双核讲并发有意思吗?一个是虚拟并发,一个是真实并发!
100万并发估计实时的并发不到10%,90%是在图片等静态资源上(图片、JS、HTML、XML等)。
0 请登录后投票
   发表时间:2013-03-22  
joknm 写道
http长连接? 有何意义? 你请求个ajax还不是一样要重新建立一个tcp链接!
并发? 你讲的是类似单核并发还是多核并发? 拿单核跟双核讲并发有意思吗?一个是虚拟并发,一个是真实并发!
100万并发估计实时的并发不到10%,90%是在图片等静态资源上(图片、JS、HTML、XML等)。

肿么大家一谈起并发都这么激情四射啊!肿么又扯到单核和双核,并发和单双核有关系吗?单核就没有并发吗?Http长连接肯定有他的应用场景,webqq,新浪微博,阿里旺旺,赶集IM,gtalk不都是基于long-polling或者streaming的长连接吗?这又要从服务器的模型说起,one request per one thread 才能有并发。线程又分为IO线程和worker线程。你说的ajax创建短连接的场景,每次请求都要分配一个worker线程,而长轮询的方式在timeout之内靠IO线程维持,采用NIO(Epoll)的方式一个线程就能维持很多连接。就这些吧!
0 请登录后投票
   发表时间:2013-03-22   最后修改:2013-03-22
一次ajax请求不一定需要建一个新tcp链接,
只要在原来的tcp链接上继续发送数据即可,这里可以免去三次握手的麻烦。
当然前提是浏览器和服务器之间开启了长链接(keep-alive)。

传统的apache使用一个进程select,收到客户的新数据后就fork一把。tomcat默认也是这个干法。这个已经out了,但也有优点。

目前一些轻量级服务器使用异步IO函数(poll/epoll/kqueue),用几个少量进程(一般就是cpu核数)同时监听并处理客户链接。一些静态文件请求这样处理毫无压力。
当然碰到cgi之类的应用处理还得fork一把。控制权交出去了,不然频繁的数据库访问之类的IO操作会把io进程阻得一塌糊涂。我们通常所说的并发指的就这个吧


0 请登录后投票
   发表时间:2013-03-23  
xiaoZ5919 写道
joknm 写道
http长连接? 有何意义? 你请求个ajax还不是一样要重新建立一个tcp链接!
并发? 你讲的是类似单核并发还是多核并发? 拿单核跟双核讲并发有意思吗?一个是虚拟并发,一个是真实并发!
100万并发估计实时的并发不到10%,90%是在图片等静态资源上(图片、JS、HTML、XML等)。

肿么大家一谈起并发都这么激情四射啊!肿么又扯到单核和双核,并发和单双核有关系吗?单核就没有并发吗?Http长连接肯定有他的应用场景,webqq,新浪微博,阿里旺旺,赶集IM,gtalk不都是基于long-polling或者streaming的长连接吗?这又要从服务器的模型说起,one request per one thread 才能有并发。线程又分为IO线程和worker线程。你说的ajax创建短连接的场景,每次请求都要分配一个worker线程,而长轮询的方式在timeout之内靠IO线程维持,采用NIO(Epoll)的方式一个线程就能维持很多连接。就这些吧!


在理,单核跟多核的线程处理机制是一样的,只是多核可以在同一时间点出了更多的线程,但实际每个核也是将cpu时间分给多个线程来处理数据。补充一下,tomcat的最大线程请求数指的是所有正在处理请求的线程,而不是最大的请求数,结合nio的话,比如最大500的线程数可能就处理了5000甚至更多的请求,但即使使用nio也会在服务器硬件有个瓶颈,达到这瓶颈时就应该使用集群了。
0 请登录后投票
论坛首页 Java企业应用版

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