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

Node.js 两台服务器之间通信的最佳方式是什么?,node.js,server,communication,Node.js,Server,Communication,我正在构建一个包含两部分的web应用程序。在一部分中,它使用服务器和客户端之间的实时连接,在另一部分中,它执行一些cpu密集型任务来提供相关数据 在nodejs中实现实时通信,在python/java中实现cpu密集部分。nodejs服务器参与与其他服务器的双工通信的最佳方式是什么 你一定在找 Socket.IO支持基于事件的实时双向通信。 它适用于所有平台、浏览器或设备,同样注重可靠性和速度 传统上,套接字是解决大多数问题的解决方案 构建实时系统,提供双向 客户端和服务器之间的通信通道 您可以

我正在构建一个包含两部分的web应用程序。在一部分中,它使用服务器和客户端之间的实时连接,在另一部分中,它执行一些cpu密集型任务来提供相关数据

在nodejs中实现实时通信,在python/java中实现cpu密集部分。nodejs服务器参与与其他服务器的双工通信的最佳方式是什么

你一定在找

Socket.IO支持基于事件的实时双向通信。 它适用于所有平台、浏览器或设备,同样注重可靠性和速度

传统上,套接字是解决大多数问题的解决方案 构建实时系统,提供双向 客户端和服务器之间的通信通道


您可以使用提供的http.request方法在节点的代码中发出curl请求。 http.request方法也用于实现身份验证api。 您可以在请求成功时进行回调,当您在节点中获得响应数据时,可以将其发送回用户。
而在后台,java/python服务器可以利用node的请求执行CPU密集型任务。

我维护一个node.js应用程序,该应用程序可以在分布在两台服务器上的34个任务之间进行交互

在您的情况下,对于Web服务器和App Server之间的通信,您可以考虑MQTT.< 我使用mqtt进行这种通信。大多数语言都有mqtt客户端,包括node/javascript、python和java。在我的例子中,我使用mqtt“topics”发布json消息,任何注册订阅“topic”的任务在发布时都会收到它的数据。如果你在谷歌上搜索“pub-sub”、“mqtt”和“mosquitto”,你会发现很多参考资料和例子。MOSQUITO(现在是一个Eclipse项目)只是众多可用mqtt代理中的一个。另一个用Java编写的非常好的代理称为hivemq


这是一个非常简单、可靠的解决方案,具有良好的扩展性。在我的例子中,每天有数百万条消息可靠地通过mqtt传递。

对于一个基本解决方案,如果您已经在使用它并且知道它是如何工作的,那么您可以使用它,因为它允许客户机和服务器之间进行通信,其中客户机可以是不同语言的不同服务器

如果您想要一个具有附加选项和控件的更健壮的解决方案,或者能够处理更高的流量吞吐量(尽管如果您最终只是通过相对较慢的互联网发送,这不应该是一个问题),您可以考虑类似于ØMQ()的解决方案。它是一个消息传递队列,除了请求-响应之外,它还为您提供了更多的控制和许多不同的通信方法

当您设置这两种服务器时,我建议使用CPU密集型服务器作为稳定端(服务器),使用web服务器作为客户端。假设您使用单个服务器执行CPU密集型任务,并且运行多个NodeJS服务器实例以利用web服务器的多核。这简化了您的通信,因为您希望有一个连接点


如果您预见到需要多个CPU服务器,您将需要设置一个路由服务器,该服务器可以在多个web服务器和多个CPU服务器之间进行路由,在这种情况下,我建议您额外学习ØMQ。

节点和python部分之间的通信也是实时的,或者,这可以使用一种更松散耦合的方法来实现吗?我想看看它或任何关于它的好教程。谢谢你有什么好的教程或开源实现可以让我更好地学习吗?还是只是rtfm?