宝哥软件园

十分钟内获得多个图片/文件服务器

编辑:宝哥软件园 来源:互联网 时间:2021-09-06

写在前面

图像/文件服务器,顾名思义,就是存储文件。有些人使用阿里巴巴云现有的服务,有些人将文件发布到文件服务器,在文件服务器的末端,使用一个应用程序来接收和保存它们。方法不同。老司机的各种服务器都打得不好。使用图片/文件多服务器的几个问题在于:

1.如何将1.web上传的文件发布到文件服务器,以及它占用带宽和时间的速度。

2.如何让文件均匀分布在各个图片服务器上?

3.如何扩展新的图片服务器,确保对分配内容的影响最小化。

一方面希望有经验的司机能给点建议,另一方面和新司机分享,记录自己的旅程。

在第一分钟确定最终目标

1.每个文件服务器不仅提供存储functIOn,还具备外部服务能力,从而减少每个Web服务器的带宽占用和磁盘io消耗。

2.提供简单易行的水平扩展能力

3.异步异步输入输出确保线程不会被阻塞。

4.文件很快到达图片服务器

第三分钟否定自己

1.拒绝拍摄Http Post图片到图片服务器

2.拒绝采用哈希模算法

3.拒绝使用一致哈希,以避免文件在服务器水平扩展后移动,即使数量很少

第五分钟决定实施

1.在特定用户之间将文件服务器磁盘作为“网盘”共享到一个文件夹中,也就是说只有web服务器才能访问共享文件夹,可以参考如何在局域网或阿里巴巴云共享文件夹。

2.通过IIS虚拟目录,将其物理路径指向网络磁盘。您知道共享文件夹使用Tcp/Ip协议和Netbios协议进行通信。

3.配置WebConfig以访问网络磁盘标识(用户名和密码)-必须对其进行配置

4.第一步共享的文件是在IIS下的WebApp中文件服务器部署的一个文件下,从而暴露URL路径。因为你知道IIS除了读取文件之外,不能在父文件夹中获取任何东西。

4.根据文件名-文件后缀名确定图片位置均匀分布的方式,采用‘文件名-01’(一号服务器)、‘文件名-02’(二号服务器),用随机数得到随机数,只要随机数是,我们就有几个服务器。经过100万次随机测试,1、2、3次分别获得约33W次,保证了均衡。在未来的扩展中,只需再打开几个随机数,无需移动文件,也无需重装。横向扩展服务器数量后,希望保证三台服务器不继续存储文件,随机范围可调。我们已经将文件名保存在数据库或缓存中,它有一个后缀名称。为前台返回图片URL时,我们只需要根据后缀名称拼出文件服务器的IP或域名即可。

遵循第七分钟的步骤

1.部署FileServerApp,其功能是将URL公开给图片。其实很简单。创建一个Asp.Net空项目和一个存储图片的文件夹。并与网络服务器共享此文件夹。有关详细信息,请参见上一节中的部署图。

2.假设您已经实现了文件夹共享

3.在IIS站点下创建一个新的虚拟目录,注意物理路径指向网络共享文件夹的网络路径

4.在Webconfig下添加标识impersonate=' true ' username=' Ben ' password=' your pwd '/并且IIS将此虚拟目录的身份验证设置为应用程序池标识。

5.使用服务器。MapPath获取文件服务器2的网络路径,以你读写文件的方式读写目录中的文件。

6.建议异步写入文件。异步IO会在你发送IO请求包到网络驱动或者磁盘驱动后返回处理其他事情。在未来的某个时间点,文件会被成功写入,状态机会恢复你的上下文并继续同步执行,这可以大大提高你的Web服务器的吞吐量。

写在最后一点

如果有任何歧义,可以在这里全部看到

以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一些帮助,也希望多多支持我们!

更多资讯
游戏推荐
更多+