基本上,我有一个在apache tomcat上运行的现有java应用程序。
但我想检查nodejs是否可以帮助任何扩展现有Java应用程序的方式(即由于node.js的事件驱动性质而能够处理大量请求),这样我就不必更改代码java应用程序......所以我想出了一个架构,如下所示: -
我想通过node.js服务器接收请求(即使用node.js的属性来处理与apache tomcat相比的大量请求)并通过它们之间的消息队列将其传递给apache tomcat(它可以是任何。我最感兴趣的是使用ActiveMQ,因为tomcat和activemq都是apache产品)。
我想将响应从apache tomcat传递回nodejs服务器..(这看起来有点棘手,即如何维护应该响应的请求)
我想确认这种架构是否可行。如果是的话,那怎么样...... ???如果不是,那么请提出其他建议......
答案 0 :(得分:0)
Node.js很快,因为它使用异步IO。这意味着,当存在文件操作时,它不会阻止下一个操作,并让服务器在同一个线程上执行其他操作。
这改变了node.js上的程序如何工作以及必须使用事件驱动代码的方式。
您正在考虑的机制只有在您可以将请求分解为node.js服务器上的多个任务并且为异步调用每个子任务的适当参数的apache服务器的情况下才有用,这将意味着多个任务将由node.js在同一请求上启动,node.js将等待每个任务完成的事件。
这可能需要做很多工作,这意味着您将控制器逻辑迁移到node.js并在java中保留您的views / html等和数据访问层。
请注意,如果您无法为单个请求并行启动任务,由于Apache方面的逻辑类型,您将最终重新开发整个应用程序,然后才能获得可观的性能提升。
更好的方法是针对更快的后端执行步骤更改。部分步骤概述如下