在服务器上均匀上传文件

时间:2012-12-12 05:49:48

标签: c# asp.net mysql file-upload distributed

用户将文件上传到我的网站,我需要在多个服务器上均匀分发文件,并且我需要在数据库中有一列说明特定文件上传的服务器。

所以这是我的设计。

  1. 具有服务器名称的枚举,即server1,server2,server3。
  2. 从DB
  3. 获取上次上传的服务器名称
  4. 如果上次上传的服务器是server1,则应将当前文件上传到server2并更新DB, 如果上次上传的服务器是server3 \,则应将当前文件上传到server1并更新DB
  5. 应用程序和数据库当前托管在单个服务器上,但将来我们将转向负载平衡。

    请告诉我是否有除此之外的最佳方法。

1 个答案:

答案 0 :(得分:1)

您的解决方案应该根据客户的使用方式而有效。我会给你一个关于我之前看到过这种情况的快速细分。

  • 循环DNS(将多个IP地址分配给同一个域)
  • 基于DNS循环获取流量的多个Web服务器
  • 每个Web服务器都有自己专用的SQL服务器。
  • SQL服务器使用复制来保持数据同步。
  • 用于文件上传的单个存储服务器。 (除非文件上传是主要功能,我怀疑你需要> 1)

优点: 非常容易扩展,直到您达到大量流量,此时您需要重新考虑SQL部分。

购买硬件时,您可以将钱花在某些领域,专注于成为文件服务器/ SQL或Web服务器

缺点: 这不提供任何真正的冗余。由于采用分层方法,可以说会使情况变得更糟。这可以通过一些托管DNS解决,但这仍然不是一个完美的方法,我知道一些系统管理员在想到托管DNS时会感到畏缩。