龙鱼家园,个性,交流,技术,专注于网站技术的研究 龙鱼家园 | 关于Jetty6.0服务器的Continuations
 

关于Jetty6.0服务器的Continuations

jetty服务器这种长连接Continuations 其实不是真正的长连接,应该叫'connection freezing', or 'request parking' 连接暂停或请求暂停。

对于PUSH推机制:对于Jetty6其实还是依靠AJAX的客户端主动请求的,改善的是:不需要AJAX客户端不断发出多次请求给服务器,以确定服务器端是否有响应。服务器端hold住ajax客户端第一次请求,如果没有业务结果,就不发出响应response,也就是说不关闭这次http连接,但是因为一个连接一个线程,你保持住一个请求就象保持一个线程一直运行,这是很浪费资源的。

传统socket模式都是一个connection一个线程,NIO可以通过事件机制再触发新线程,使得线程和请求可以分离,这样, Jetty就是利用NIO这个机制,保持住请求request对象,释放原来支持该请求的线程,让线程返回线程池,这样,如果业务处理有结果,Jetty就向客户端发出响应,否则一直保持直至timeout失效。

这个机制如果证明可行,会加入servlet 3.0新规范,到时所有Jee服务器都有这个功能。

所以,这个机制不是严格意义上的推机制,但是也可以对付大量频繁刷新请求,所以是一个改进。

至于推机制中服务器如何推,可以参考eda架构,这个是和我们平时做的JEE的SOA机制不太一样,至于如何推,可以使用线程提醒 观察者JDK 或JMS等等。

http://www.theserverside.com/news/thread.tss?thread_id=36594

http://docs.codehaus.org/display/JETTY/Continuations

http://www.jdon.com/article/34462.html


Search

友情链接

  • 微足迹
  • 资质通鉴
  • 译言
  • 代码发芽网
  • 清清月儿
  • 二频
  • dotnetblogengine
  • 苹果树下
  • 联系我:
    leonardleonard@126.com

    © Copyright 2012