非阻塞io Web服务器/java框架

非阻塞io Web服务器/java框架,java,webserver,Java,Webserver,有人知道node.js风格的Web服务器java框架吗? 我意识到,在处理web请求时具有非阻塞回调行为将需要web服务器级别的深度支持。我对node.js感兴趣,但当我有一个最终持久化数据的web服务器时,我希望利用Java提供的静态类型系统。但是,我需要非阻塞io的可伸缩性。可能是您所需要的 此外,如果您对使用ServletAPI感兴趣,它也提供了,那么最好知道体面的servletcontainers也支持NIO(通常是通过在封面下使用Grizzly),比如和。也许您根本不想要它。大量证据表

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

可能是您所需要的


此外,如果您对使用ServletAPI感兴趣,它也提供了,那么最好知道体面的servletcontainers也支持NIO(通常是通过在封面下使用Grizzly),比如和。

也许您根本不想要它。大量证据表明,“可伸缩NIO”只有在大量客户面前才能真正发挥其优势。请记住,select()和friend是在计算单元是进程而不是线程时设计的。除非您计划从第一天开始就拥有数十万个OCConnections,否则我肯定会先在java.net中构建,然后进行评估

特征

  • 专门针对数千个同时连接进行了优化。(C10k)(C500k)
  • 使用纯JavaNIO(Java.NIO和Java.NIO.channels)
  • 异步(非阻塞I/O)

我问了自己同样的问题,我没有像我应该做的那样四处搜索,而是研究了如何编写一个框架来将软件组件部署到nio服务器,类似于将servlet和EJB部署到Java EE容器的方式。我把它写在了博客上,以防对你有所帮助。

我对这件事的看法是玩!框架(见附件)。它支持Java和Scala开发。Play构建在Netty(请参阅)之上,Netty本身就是一个NIO(非阻塞IO)客户机-服务器框架。Play(和Netty)使用Futures(异步操作的结果/对将来某个时间点可能发生的事情的读取句柄)和Promises(可写未来)来解决这个问题(请参见)

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

  • Vert.x(最初命名为node.x)

  • 你觉得node.js怎么样。你是说任何非阻塞io的好处直到很久以后才会出现吗?还是你只是在评论NIO?