全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

十分钟搞定多图片/文件服务器

写在前面

图片/文件服务器,顾名思义就是存文件呗,有的人用阿里云的现有服务,有的把文件Post到文件服务器,在文件服务器一端用一个应用程序来接收并保存,方法各不相同。老司机们各种服务器已经玩烂了。在使用图片/文件多服务器的几个问题就在于:

1.web上传的文件如何post到文件服务器上及其速度如何,占用带宽和耗时如何。

2.如何使文件均衡的分布在各台图片服务器上。

3.如何拓展新的图片服务器,并保障对已分配的内容影响降到最小。

本篇分享一方面希望有经验的司机给点意见,另一方面分享给新司机和记录自己的历程。

第一分钟确定最终目标

1.各文件服务器不仅提供存储功能,还要有对外服务能力,以降低各个Web服务器的带宽占用和磁盘IO消耗。

2.提供简便和容易的可横向拓展能力

3.Async异步IO保证线程非阻塞。

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

第三分钟否定自己

1.否认采取Http Post图片到图片服务器的方式

2.否认采取Hash取模算法

3.否认使用一致性哈希,避免服务器横向拓展后文件移动,即使是少量的

第五分钟确定实现方式

1.把文件服务器磁盘共享出一个文件夹,作为特定用户间“网络磁盘”,就是说该共享文件夹,只有web服务器有权限访问,你可以参照局域网内如何共享文件夹或者阿里云共享文件夹。

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

3.配置WebConfig访问网络磁盘身份(用户名和密码)—必须配置哦

4.第一步所共享的文件,在文件服务器部署在IIS下WebApp中的一个文件下,以便暴露URL路径。因为你知道IIS除了使用文件读取的方式,是不可以获取父级文件夹中的任何内容的。

4.确定根据文件名均匀分配图片位置的方式—文件后缀名方式,后缀名采用"文件名-01"(一号服务器),后缀名采用"文件名-02"(二号服务器),随机数使用Random来取,随机数是几,我们就存在几号服务器。经过多次测试100万次随机,1,2,3分别得到33W次左右,保障了均衡。在将来拓展的时候,Random随机数多开启几位就行了,不需要文件的移动,也没有reshash。并且在横向拓展服务器数量后,希望保证已有三台服务器不继续存储文件,Random范围可调。在数据库或者缓存中我们已经存下了文件名称,并且其有后缀名,在为前台返回图片URL的时候,只需要根据后缀名称,来拼出文件服务器IP或域名。

第七分钟按照步骤动手操作

1.部署FileServerApp,其功能是对图片暴露URL,其实很简单啦,建立一个Asp.Net空项目,建立出存储图片的文件夹。并将该文件夹共享给Web服务器,细节看最后一节的部署图。

2.假定你已经实现文件夹共享

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

4.在Webconfig下  <system.web>增加 <identity impersonate="true" userName="ben" password="yourpwd" /> ,IIS对该虚拟目录设置身份验证为 应用程序池标识。

5.使用Server.MapPath可以获取FileServer2的网络路径,并使用你的读写文件方式对目录中的文件进行读写。

6.写入文件建议使用Async的方式,异步IO会在你将IO请求包发给网络驱动或者磁盘驱动后,返回去处理其他事情,在将来的某个时刻,文件写入成功,状态机恢复你的上下文并以同步的方式继续向下执行,能大大提高你Web服务器的吞吐能力。

写在最后的重点

如果还有模糊的地方,看这里就全明白啦

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持! 


# 图片  # 文件  # 服务器  # 远程图片自动按文件夹上传到服务器-默飞出品  # Java如何从服务器中下载图片  # Nginx服务器上搭建图片缓存服务的基本配置解析  # Android使用post方式上传图片到服务器的方法  # Android异步上传图片到PHP服务器  # jquery控制显示服务器生成的图片流  # java实现将文件上传到ftp服务器的方法  # 在windows上用nodejs搭建静态文件服务器的简单方法  # NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法  # golang实现http服务器处理静态文件示例  # 文件服务器  # 随机数  # 共享文件夹  # 你知道  # 应用程序  # 自己的  # 可调  # 的是  # 将来  # 你可以  # 不需要  # 已有  # 要有  # 不可以  # 会在  # 下了  # 将其  # 即使是  # 几位  # 只需要 


相关文章: 建站之星如何取消后台验证码生成?  建站之星3.0如何解决常见操作问题?  如何在Windows环境下新建FTP站点并设置权限?  兔展官网 在线制作,怎样制作微信请帖?  电商网站制作价格怎么算,网上拍卖流程以及规则?  Swift中switch语句区间和元组模式匹配  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  相册网站制作软件,图片上的网址怎么复制?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  建站DNS解析失败?如何正确配置域名服务器?  建站VPS选购需注意哪些关键参数?  h5网站制作工具有哪些,h5页面制作工具有哪些?  网站制作员失业,怎样查看自己网站的注册者?  如何用景安虚拟主机手机版绑定域名建站?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  装修招标网站设计制作流程,装修招标流程?  北京网站制作的公司有哪些,北京白云观官方网站?  建站上传速度慢?如何优化加速网站加载效率?  招商网站制作流程,网站招商广告语?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  网站制作难吗安全吗,做一个网站需要多久时间?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  如何通过虚拟主机快速搭建个人网站?  平台云上自助建站如何快速打造专业网站?  香港网站服务器数量如何影响SEO优化效果?  如何快速搭建响应式可视化网站?  ,网站推广常用方法?  如何在IIS服务器上快速部署高效网站?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  浅谈Javascript中的Label语句  淘宝制作网站有哪些,淘宝网官网主页?  建站主机选哪种环境更利于SEO优化?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  建站主机服务器选购指南:轻量应用与VPS配置解析  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  如何用虚拟主机快速搭建网站?详细步骤解析  如何用花生壳三步快速搭建专属网站?  婚礼视频制作网站,学习*后期制作的网站有哪些?  jQuery 常见小例汇总  建站主机选购指南与交易推荐:核心配置解析  C#怎么使用委托和事件 C# delegate与event编程方法  如何在阿里云虚拟主机上快速搭建个人网站?  如何快速建站并高效导出源代码?  北京专业网站制作设计师招聘,北京白云观官方网站?  建站之星多图banner生成与模板自定义指南  ,想在网上投简历,哪几个网站比较好?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。