Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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
C# 在服务器上均匀上传文件_C#_Asp.net_Mysql_File Upload_Distributed - Fatal编程技术网

C# 在服务器上均匀上传文件

C# 在服务器上均匀上传文件,c#,asp.net,mysql,file-upload,distributed,C#,Asp.net,Mysql,File Upload,Distributed,用户将上传文件到我的网站,我需要将它们均匀地分布在多个服务器上,我还需要在数据库中有一列,说明特定文件上传到哪个服务器 这是我的设计 具有服务器名称的枚举,即server1、server2、server3 从数据库中获取上次上载的服务器名称 如果最后上载的服务器是server1,则当前文件应上载到server2并更新DB, 如果上次上载的服务器是server3\,则当前文件应上载到server1并更新数据库 应用程序和数据库目前托管在单个服务器上,但将来我们将转向负载平衡 让我知道除此之外是否还

用户将上传文件到我的网站,我需要将它们均匀地分布在多个服务器上,我还需要在数据库中有一列,说明特定文件上传到哪个服务器

这是我的设计

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


    让我知道除此之外是否还有其他最佳方法。

    您的解决方案是否有效取决于您的客户如何使用它。我会给你一个快速的细目,看看我以前是怎么做的

    • 循环DNS(为同一域分配多个IP地址)
    • 基于DNS循环获得流量的多个web服务器
    • 然后,每个web服务器都有自己的专用SQL server
    • SQL Server使用复制来保持数据同步
    • 用于文件上载的单个存储服务器。(除非文件上传是主要功能,否则我怀疑您是否需要>1)
    优点: 非常容易扩展,直到您达到巨大的流量水平,此时您需要重新考虑SQL部分

    当你购买硬件时,你可以把钱花在某些方面,把注意力集中在文件服务器/SQL或web服务器上

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

    您的解决方案应该根据您的客户如何使用它来工作。我会给你一个快速的细目,看看我以前是怎么做的

    • 循环DNS(为同一域分配多个IP地址)
    • 基于DNS循环获得流量的多个web服务器
    • 然后,每个web服务器都有自己的专用SQL server
    • SQL Server使用复制来保持数据同步
    • 用于文件上载的单个存储服务器。(除非文件上传是主要功能,否则我怀疑您是否需要>1)
    优点: 非常容易扩展,直到您达到巨大的流量水平,此时您需要重新考虑SQL部分

    当你购买硬件时,你可以把钱花在某些方面,把注意力集中在文件服务器/SQL或web服务器上

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

    我认为最好弄清楚如何执行负载平衡。您提议的方法只会给您留下一个选择:路由到服务器的静态DNS值。如果您想要真正的故障转移负载平衡场景,这并不理想。我认为最好弄清楚如何执行负载平衡。您提议的方法只会给您留下一个选择:路由到服务器的静态DNS值。如果您想要真正的故障转移负载平衡场景,这并不理想。