我们有一个 ASP.NET 文件传递应用程序(内部用户上传,外部用户下载),我想知道分发文件的最佳方法是什么,这样我们就不会出现单点故障,只需将应用程序的文件存储在一个服务器。我们将应用程序的负载分布在多个前端 Web 服务器上,这意味着对于文件存储,我们不能简单地将文件本地存储在 Web 服务器上。
我们当前的设置让我们指向主数据库/文件服务器上的共享。我们一整天都在将主服务器上共享的内容复制到故障转移中。此场景可确保我们拥有一台具有相当最新数据的辅助计算机,但我们希望能够从主计算机故障转移到故障转移并再次返回,而不会丢失数据或前端应用程序中出现错误。现在这是一个相当手动的过程。
可能的解决方案包括:
- 机械复制。很简单,但它不容易让您在没有多个作业一直运行的情况下再次进行故障转移(来回复制数据)
- 将文件存储在 SQL Server 2005 中的 BLOB 中。我认为这可能是一个性能问题,尤其是对于大文件。
- 在 SQL Server 2008 中使用FILESTREAM 类型。我们镜像我们的数据库,所以这看起来很有希望。有人对此有经验吗?
- 微软的分布式文件系统。由于我们只有 2 台服务器要管理,因此从我所读到的内容看来有点矫枉过正。
那么您通常如何解决这个问题,最好的解决方案是什么?