Node.js 由于使用节点JS进行迭代,API速度变慢
我正在使用NodeJS创建RESTAPI 在我的场景中,我有两个API API 1-->必须获得10000条记录并进行迭代以修改某些数据 API 2:简单的get方法 当我打开PostMan并点击第一个API和第二个API并行时 因为节点JS是单线程的,这会导致第二个API获取响应的速度变慢 我的期望: 即使第一个API获得了时间,它也不应该在很长的时间内成为第二个API 从NodeJS文档中,我发现了集群的概念。 所以我实现了集群,它创建了4个服务器实例。 现在我在一个选项卡中点击了API1,在第二个选项卡中点击了API2,效果很好。 但当我在4个选项卡中打开API1,再次打开第5个选项卡时,API2再次导致速度变慢Node.js 由于使用节点JS进行迭代,API速度变慢,node.js,Node.js,我正在使用NodeJS创建RESTAPI 在我的场景中,我有两个API API 1-->必须获得10000条记录并进行迭代以修改某些数据 API 2:简单的get方法 当我打开PostMan并点击第一个API和第二个API并行时 因为节点JS是单线程的,这会导致第二个API获取响应的速度变慢 我的期望: 即使第一个API获得了时间,它也不应该在很长的时间内成为第二个API 从NodeJS文档中,我发现了集群的概念。 所以我实现了集群,它创建了4个服务器实例。 现在我在一个选项卡中点击了API1,
解决此问题的最佳解决方案是什么?Node.js实际上不是多线程的,因此所有这些请求都只是在单个线程的事件循环中处理 每个Node.js进程在单个线程中运行,默认情况下,它在32位系统上的内存限制为512MB,在64位系统上的内存限制为1GB 但是,您可以将单个流程拆分为多个流程或工作进程。这可以通过集群模块实现。集群模块允许您创建子进程(工作进程),这些子进程与主节点进程共享(或不共享)所有服务器端口 您可以在应用程序中直接调用集群API,也可以在API上使用多个抽象之一
由于node.js的单线程特性,确保服务器始终响应快速请求(如您为API2所述)的唯一方法是确保服务器中没有任何长时间运行的操作 当您的代码中确实遇到需要一段时间才能运行并会影响服务器响应的操作时,您的选项如下:
最后一个选项是最简单的,因为它对任何数量的长时间运行的请求都有效,尽管所有方案都可以帮助您。请给出一个需要迭代10000条记录并修改数据的示例。我想不出任何例子。你在用mongodb吗?postgre?不使用任何数据库。取决于两个外部服务。从外部服务获取数据后,您需要修改数据。但是,您如何可能需要在一次操作中更新10000多个数据?我仍然没有得到一个关于何时这样做的真实例子。请给我们一个真实的例子。