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

时间:2018-06-12 15:03:40

标签: node.js rest websocket

场景是我有两个Node应用程序提供一些REST API,Server_A有一些REST端点,Server_B有一些其他端点。

我们要求Server_A需要Server_B中的一些数据。我们可以为此创建一些REST端点,但会出现一些性能问题。 Server_A每次都会在Server_B上创建http连接。

我们可以使用Websockets,但我不太确定它是否是好方法。 在所有情况下,Server_A将调用Server_B,Server_B将立即返回数据。

Server_B将执行大部分数据库操作,Server_A仅进行计算。 Server_A将调用Server_B以满足某些数据要求。

另外,Server_A和Server_B之间只有一个套接字连接,所有其他客户端只能通过REST连接。

有人可以建议这是否正确? 或者你有更好的主意。

如果我得到一些代码参考,模块建议会很有帮助。 感谢

1 个答案:

答案 0 :(得分:1)

您所询问的是过早优化。您甚至在知道自己遇到问题之前就试图进行优化。

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

您需要做的是使用已经支持的服务器B的常规HTTP请求来实现服务器A.然后,在加载时测试您的系统并查看它的执行情况。机会非常好,真正的瓶颈与您在服务器A和服务器B之间使用HTTP请求的事实无关,如果您想提高系统的性能,您可能会正在研究不同的问题。这就是您不想过早优化的原因。

系统中运动部件越多,当您将系统置于负载之下时,您就不太可能知道实际瓶颈在哪里。这就是为什么你必须在负载下测试系统,把它当作疯狂的工具,这样你就可以看到性能最受影响的地方,然后像疯了一样测量。然后,只有这样,您才知道投资开发资源以提高可扩展性或性能的意义。

仅供参考,webSocket连接与重复的HTTP连接相比具有一些优势(每个请求的连接开销更少),但也存在一些缺点(它不是请求/响应,因此您可以创建自己的方式来匹配响应与请求)。