我一直在努力将 node.js 放在我们的 java webserver 前面,以利用 node 的异步处理——做一些轻量级的处理和其他任务,最终是 socket.io。该应用程序的大部分实际工作都是在 java 中完成的,到目前为止,我们一直在使用 jetty 网络服务器来处理所有请求。我最初一直在考虑使用 node-http-proxy 来转发(可能是修改过的请求)。经过进一步考虑,我意识到我可以使用 RabbitMQ 和 node-amqp 库之类的东西来实现更健壮的通信协议,而不是转发 http 请求。这也将更好地支持从 java 通过 node 和 socket.io 推送回浏览器。
我的问题是:现在使用节点处理所有传入请求,是否有任何理由继续在码头内运行 java?如果不是,我是否应该从命令行的 main 方法中直接运行 java 代码?最后,这种方法是否存在重大缺陷?
我们的应用程序是一个单页应用程序,除了最初加载页面的第一个请求之外,所有进一步的调用都只是 restful json 调用,并且应该很容易通过 amqp 传输。