node.js - 两台服务器之间通信的最佳方式是什么?

标签 node.js server communication

我正在构建一个包含两个部分的网络应用程序。一方面,它使用服务器和客户端之间的实时连接,另一方面,它执行一些 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/

相关文章:

node.js - 为什么服务器会计算重复条目?

testing - 如何从我的 Golang 服务器获取代码覆盖率?

linux - 使用 Google DNS 服务作为内部 Linux BIND9 DNS 服务器的辅助/从属服务器

mpi - 非阻塞发送和阻塞接收是否仍然需要等待

java - ACR122u直接通讯无 react

javascript - 当一个 promise 被拒绝时,使用 promise.all 对事务进行 Sequelize 无法回滚

node.js - Mongoose:find 语句未执行

node.js - Cassandra Node.js ORM 最佳实践

node.js - 类型错误 : Cannot read property 'name' of undefined express js+jade templating

java - C# 进程读取 java 进程的输出流,而不使用套接字、IDL/CORBA、文件、数据库或 JNI