Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否在负载平衡时快速上载文件?_Javascript_Node.js_Express_Load Balancing_Multer - Fatal编程技术网

Javascript 是否在负载平衡时快速上载文件?

Javascript 是否在负载平衡时快速上载文件?,javascript,node.js,express,load-balancing,multer,Javascript,Node.js,Express,Load Balancing,Multer,最近,我在NodeJS中制作了一个具有负载平衡功能的应用程序。我只为数据库本身制作了一个服务器,另一个用于管理请求。问题是,在应用程序中,您可以使用multer上载文件,而在express中,您可以将文件上载到该服务器。这是一个明确的静态 例如,我有4台服务器,一台用于db,2台用于应用程序,1台用于负载平衡器。 当loadbalancer请求app-1服务器时,文件将上载到app-1服务器,而不是db服务器。因此,当我尝试从app-2服务器访问该文件时,该文件不存在 有没有办法解决这个问题?

最近,我在NodeJS中制作了一个具有负载平衡功能的应用程序。我只为数据库本身制作了一个服务器,另一个用于管理请求。问题是,在应用程序中,您可以使用multer上载文件,而在express中,您可以将文件上载到该服务器。这是一个明确的静态

例如,我有4台服务器,一台用于db,2台用于应用程序,1台用于负载平衡器。 当loadbalancer请求app-1服务器时,文件将上载到app-1服务器,而不是db服务器。因此,当我尝试从app-2服务器访问该文件时,该文件不存在

有没有办法解决这个问题? 还是使用负载平衡器的更好方法?
因为我是负载平衡器的新手。谢谢

您将通过app-1上传的文件存储在哪里?例如,您可以将其存储在bucket中,并将引用保留在SQL数据库中。因此,当app-2尝试访问该文件时,它会直接询问数据库,该数据库在您的应用程序之间共享

要回答您的问题,您有两种解决方案:

  • 使用负载平衡器保持会话持久性,以便请求app-1的用户在会话到期之前一直请求app-1
  • 采用无状态后端设计,这意味着您不需要会话,因此任何用户都可以向您拥有的任何
    app
    实例发送请求,其行为也将相同
我将使用解决方案2,在您了解无状态概念之后,它会更容易

拥有一个外部存储桶,而不依赖
应用程序
内部内存和存储系统,是实现无状态体系结构的好方法