Discuz! Board

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 1|回復: 0
打印 上一主題 下一主題

通过AWS S3在多个服务器之间共享数据

[複製鏈接]

1

主題

1

帖子

2

積分

新手上路

Rank: 1

積分
2
跳轉到指定樓層
樓主
發表於 2023-12-23 18:34:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
创建上传和操作文件的多步骤表单时,如果应用程序在负载均衡器后面的多个服务器上运行,那么我们需要确保该文件在整个流程执行过程中可用,无论是哪一个服务器处理每个步骤的过程。在本文中,我们将通过基于 AWS S3 创建一个可供所有上传文件的服务器访问的存储库来解决此问题。
当提供某些功能来处理用户上传的文件时,该文件必须在整个执行过程中可供进程使用。简单的上传和保存操作不会出现任何问题。但是,如果在保存之前必须对文件进行操作,并且应用程序在负载平衡器后面的多个服务器上运行,那么我们需要确保每次运行该进程的服务器都可以使用该文件。

例如,多步骤“上传您的用户头像”功能可能要求 电子邮件营销列表 用户在步骤 1 中上传头像,在步骤 2 中进行裁剪,最后在步骤 3 中保存。在步骤 6 将文件上传到服务器后1,该文件必须可供处理步骤 2 和 3 的请求的服务器使用,该服务器可能与步骤 1 的服务器相同,也可能不同。

一种简单的方法是将步骤 1 中上传的文件复制到所有其他服务器,以便该文件在所有服务器上都可用。然而,这种方法不仅极其复杂,而且不可行:例如,如果站点运行在来自多个地区的数百台服务器上,则无法实现。



一种可能的解决方案是在负载均衡器上启用“粘性会话”,这将始终为给定会话分配相同的服务器。然后,步骤 1、2 和 3 将由同一服务器处理,并且在步骤 1 上上传到该服务器的文件在步骤 2 和 3 中仍将存在。但是,粘性会话并不完全可靠:如果在步骤 1 之间2 服务器崩溃,那么负载均衡器将不得不分配不同的服务器,从而破坏功能和用户体验。同样,在特殊情况下,始终为会话分配同一服务器可能会导致负载过重的服务器响应速度变慢。

更合适的解决方案是在所有服务器都可以访问的存储库上保留文件的副本。然后,在步骤 1 将文件上传到服务器后,该服务器会将其上传到存储库(或者,也可以绕过服务器,直接从客户端将文件上传到存储库);处理步骤 2 的服务器将从存储库下载文件,对其进行操作,然后再次将其上传到存储库;最后,处理步骤 3 的服务器将从存储库下载它并保存。

回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|自動贊助|GameHost抗攻擊論壇  

GMT+8, 2025-2-7 06:12 , Processed in 0.195050 second(s), 5 queries , File On.

抗攻擊 by GameHost X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表
一粒米 | 中興米 | 論壇美工 | 設計 抗ddos | 天堂私服 | ddos | ddos | 防ddos | 防禦ddos | 防ddos主機 | 天堂美工 | 設計 防ddos主機 | 抗ddos主機 | 抗ddos | 抗ddos主機 | 抗攻擊論壇 | 天堂自動贊助 | 免費論壇 | 天堂私服 | 天堂123 | 台南清潔 | 天堂 | 天堂私服 | 免費論壇申請 | 抗ddos | 虛擬主機 | 實體主機 | vps | 網域註冊 | 抗攻擊遊戲主機 | ddos |