我很快就会使用名为 Undertow 的服务器。这website http://undertow.io/ says:
Undertow 是一个用 java 编写的灵活的高性能 Web 服务器,
基于NIO提供阻塞和非阻塞API
如果Undertow允许非阻塞,那和node.js一样吗?我指的不是语言或类似的东西。我有一个单独的项目,我认为 node.js 是一个不错的选择,但如果我可以将单个产品用于多个项目,那将会很有帮助。
编辑:我发现了这个问题。Java NIO 非阻塞模式 vs Node.js 异步操作 https://stackoverflow.com/questions/20740961/java-nio-non-blocking-mode-vs-node-js-asychronous-operation我开始觉得我把事情搞混了。
Undertow基于 JBoss XNIO 库等Nodejs,XNIO 依赖操作系统功能(epoll 或 kqueue,如果可用)来接收 IO 事件通知(例如,当可以从套接字读取数据时)。
在 Undertow 中,接受传入请求是按照此模型完成的,由IO threads
。在这些线程上执行阻塞操作意味着延迟新传入请求的处理。请参阅 Undertow 有关 IO 线程的文档 http://undertow.io/undertow-docs/undertow-docs-1.3.0/index.html#management-of-io-and-worker-threads
除了 IO 线程之外,Undertow 还管理另一个线程池,即Worker threads
,处理阻塞任务(想想像调用网络服务或查询数据库这样的任务。)这是你不会得到的Nodejs!
要使用工作线程,请求处理必须是派遣来自IO线程。 API 全面且易于使用,请参阅 Undertow 的文档 http://undertow.io/undertow-docs/undertow-docs-1.3.0/index.html#undertow-request-lifecyle,作为起点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)