Node.js 连接两个nodejs REST API服务器的最佳方法

Node.js 连接两个nodejs REST API服务器的最佳方法,node.js,rest,websocket,Node.js,Rest,Websocket,场景是我有两个节点应用程序,它们提供一些RESTAPI,服务器A有一些REST端点集,服务器B有一些其他端点集 我们有一个要求,服务器a需要从服务器B获取一些数据。我们可以为此创建一些REST端点,但会有一些性能问题。服务器A每次都将创建到服务器B的http连接 我们可以使用WebSocket,但我不太确定这是否是一个好方法。 在所有情况下,服务器A将调用服务器B,服务器B将立即返回数据 服务器B将执行大多数数据库操作,服务器A只进行计算。服务器A将调用服务器B以满足某些数据需求 此外,服务器A

场景是我有两个节点应用程序,它们提供一些RESTAPI,服务器A有一些REST端点集,服务器B有一些其他端点集

我们有一个要求,服务器a需要从服务器B获取一些数据。我们可以为此创建一些REST端点,但会有一些性能问题。服务器A每次都将创建到服务器B的http连接

我们可以使用WebSocket,但我不太确定这是否是一个好方法。 在所有情况下,服务器A将调用服务器B,服务器B将立即返回数据

服务器B将执行大多数数据库操作,服务器A只进行计算。服务器A将调用服务器B以满足某些数据需求

此外,服务器A和服务器B之间只有一个套接字连接,所有其他客户端将仅通过REST连接

有人能建议这是否是正确的方法吗? 或者你有更好的主意

如果我能得到一些代码参考,模块和建议,这将是很有帮助的。
谢谢

您所问的是过早优化。在你知道自己有问题之前,你正在尝试优化

HTTP连接非常快。有些数据库使用HTTP API工作,并且在服务器的每个HTTP请求上都会查询这些数据库。因此,经常使用的HTTP API可以正常工作

您需要做的是使用已经支持的对服务器B的常规HTTP请求来实现服务器A。然后,在负载下测试系统,看看它的性能如何。很可能真正的瓶颈与您在服务器A和服务器B之间使用HTTP请求这一事实无关,如果您想提高系统的性能,您可能会处理不同的问题。这就是为什么你不想做过早的优化

系统中移动的部件越多,在加载系统时,您就越不可能知道实际的瓶颈在哪里。这就是为什么你必须在负载下测试系统,疯狂地测试它,这样你就可以看到性能受影响最大的地方,然后疯狂地测量。然后,也只有到那时,您才会知道在哪里投资开发资源以提高可扩展性或性能是有意义的


仅供参考,与重复的HTTP连接相比,webSocket连接有一些优点(每个请求的连接开销较小),但也有一些缺点(它不是请求/响应,所以您发明了自己的方法来将响应与给定的请求相匹配)。

您在服务器B上有一些准备好的数据,还是必须进行计算等,服务器B将执行大多数数据库操作,服务器A只进行计算。服务器A将调用服务器B以满足某些数据需求。此外,服务器A和服务器B之间只有一个套接字连接,所有其他客户端将仅通过REST连接。我认为websocket不适用于您的情况。我不知道用例,但在中间使用ReIIS作为缓存可能是OpTyHiJFulf00,我完全同意,但是在服务器之间仍然会有几个调用,每个调用都需要身份验证。我同意你的看法,这不会花费太多时间,但我仍然需要在两个应用程序之间建立连接,它不应该是http。我愿意使用其他选项,而不是套接字。@如果您愿意,可以在每个请求上使用HTTP进行一次_J-Auth。一旦您登录,您的银行在每个HTTP请求上都能做到这一点。您可以在自定义标头中使用cookie或令牌作为凭据。如果您已经决定不使用HTTP(出于我不理解的原因),那么webSocket可以正常工作,但您必须设计自己的请求/响应系统,以便知道哪个响应与哪个请求相匹配。而且,如果你想通过集群进行扩展,你也必须想办法自己设计它。@A_J-而且,有了webSocket,你必须做大量的可靠性工作来检测连接何时坏了,并自动重新建立连接。所有你不必自己用HTTP实现的东西。谢谢@jfriend00,你能推荐其他连接这两个应用程序的选项吗?或者只是从服务器a调用服务器B的函数?