用于java的非阻塞io webserver / framework

有谁知道java的任何node.js样式的webserver框架? 我意识到在处理Web请求时具有非阻塞回调行为将需要在Web服务器级别提供深度支持。 我对node.js感兴趣,但是当我有一个最终持久化数据的Web服务器时,我想利用Java提供的静态类型系统。 但是,我想要非阻塞io的可扩展性。

灰熊可能是你正在寻找的。

此外,如果您对使用自3.0之后也提供异步支持的Servlet API感兴趣,那么可能很高兴知道正常的servletcontainers也支持NIO(通常仅使用Grizzly),如Apache Tomcat 7和Oracle Glassfish 3 。

也许你完全不想要它。 有大量证据表明,“可扩展的NIO”在大量客户面前无法真正实现其优势。 请记住,当计算单位是一个进程而不是一个线程时,select()和friend被设计回来了。 除非你计划从第一天开始就有成千上万的连接,否则我肯定会先在java.net中构建然后进行评估。

麻利

特征

  • 专为数千个同步连接而优化和优化。 (C10k)(C500k)
  • 使用纯Java NIO(java.nio和java.nio.channels)
  • 异步(非阻塞I / O)

我对此的看法是玩! 框架(见http://www.playframework.com/ )。 它支持Java和Scala的开发。 Play建立在Netty之上(参见http://netty.io/ ),它本身就是一个NIO(非阻塞IO)客户端 – 服务器框架。 Play(和Netty)使用Futures(异步操作的结果/读取句柄来处理将来某个时间可能发生的事情)和Promises(可写的Future)来解决这个问题(参见http://en.wikipedia) .org / wiki / Futures_and_promises )

我问自己同样的问题,而不是像我应该那样搜索,我看了你如何编写一个用于将软件组件部署到nio服务器的框架,类似于将servlet和ejbs部署到Java EE容器的方式。 我在http://blog.maxant.co.uk/pebble/2011/05/22/1306092969466.html上发布了博客,以防万一。

目前您可以使用两个主要框架

  1. Vert.x(最初名为node.x)