我正在构建一个包含两个部分的网络应用程序。一方面,它使用服务器和客户端之间的实时连接,另一方面,它执行一些 cpu 密集型任务以提供相关数据。
在nodejs中实现实时通信,在python/java中实现cpu密集部分。 nodejs 服务器可以参与与其他服务器的双工通信的最佳方式是什么?
最佳答案
对于基本解决方案,您可以使用 Socket.IO如果您已经在使用它并且知道它是如何工作的,那么它将完成工作,因为它允许客户端和服务器之间的通信,其中客户端可以是使用不同语言的不同服务器。
如果您想要一个具有更多选项和控件的更强大的解决方案,或者它可以处理更高的流量吞吐量(尽管如果您最终只是通过相对较慢的互联网发送它,这应该不是问题),您可以查看类似ØMQ(ZeroMQ)。它是一个消息传递队列,除了请求-响应之外,它还为您提供了更多控制权和许多不同的通信方法。
当您设置任何一个时,我建议您使用 CPU 密集型服务器作为稳定端(服务器),并将您的网络服务器作为您的客户端。假设您使用单个服务器来执行 CPU 密集型任务,并且您正在运行多个 NodeJS 服务器实例以利用 Web 服务器的多核优势。这简化了您的通信,因为您希望有一个连接点。
如果您预见需要多个 CPU 服务器,您将希望设置一个可以在多个 Web 服务器和多个 CPU 服务器之间路由的路由服务器,在这种情况下,我建议您学习 ØMQ 的额外工作。
关于node.js - 两台服务器之间通信的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30028127/