开源GIS实验田

OpenSource GIS Space

  • 内容导航

  • 最新评论

    • Gao Ang: 这将是一次开源GIS百科全书式的大会 ...
    • SHG: 恭喜恭喜 希望到时有更多国外的专...
    • Gao Ang: 这个示例可以搜索指定位置500m范围内...
    • suan: 你好,我想請問你GOOGLE MAPS API的問題 ...
    • Gao Ang: 静态地图现在支持用户自定义图标,...
  • 热门主题

  • 随机阅读

    • 2012 年二月
      « 十二    
       12345
      6789101112
      13141516171819
      20212223242526
      272829  
    • Gao Ang

      GaoMiao's Portrait
      有了理想
      就不要寻找放弃的理由

      站点搜索

    • 只言片语

      年轻只知学习营利,乃生命中最黯淡之时刻。 ——格里尔

    Grizzly实现仿Twitter异步读写应用

    22nd 五月 2009

    作者: Gao Ang 可以转载,请以超链接标明原始出处和作者信息及版权声明
    网址: http://www.gaoang.com/archives/121

    在JDK 1.4之前,Java的阻塞式网络IO接口在处理大量用户请求时,常会由于网络阻塞而引起处理线程终止。如果为每个用户分配单独的处理线程,在应对大规模请求时,则会在Java线程资源分配和线程调度方面占用巨大的开销,如使用多Java虚拟机或多服务器集群来满足大并发请求,则会为系统架构带来成本上的增长。

    在JDK 1.4后续版本中,通过增加New IO特性,能够让应用服务器以非阻塞方式处理网络请求,在处理大量并发请求时不必耗费大量线程。

    Grizzly是GlassFish的子项目,Grizzly在NIO技术的基础上,通过异步请求服务实现应用服务器中高性能的Java HTTP引擎,并且屏蔽NIO编程模型的复杂性。同时,Grizzly也可以独立于GlassFish作为单独框架来扩展和构建服务器应用。除了GlassFish本身,目前有为数不少的服务器应用都在使用Grizzly处理HTTP请求,包括 Jetty、Alaska、Tango、Jruby on Grizzly等应用。

    始于2004年的Grizzly项目,在目前最新的2.0.0 Milestone版本中,已在http-servlet模块中包含Servlet部署工具,并完全支持HttpService OSGi特性。为了展示Grizzly的服务器推送技术(别名”Comet”彗星),开发者Arcand使用了约150行Java代码,在Grizzly Comet框架的帮助下,实现了一个模拟Twitter的应用,以展示借助Grizzly实现功能强大的无阻塞异步读写应用示例。

    整个应用仅用一个Servlet实现,首先需要创建CometEngine类的对象,这是框架的入口点;其次要创建 CometContext对象,以此来处理等待队列中的连接;在程序中还需要定义CometHandler来允许Web应用处理排队连接的生命周期。感兴趣的开发者可以下载打包好的Twitter应用,来亲身体验基于Grizzly实现的仿Twitter异步读写应用实例。

    Leave a Reply

    XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>