写在前面

图片/文件服务器,顾名思义就是存文件呗,有的人用阿里云的现有服务,有的把文件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服务器处理静态文件示例
# 文件服务器
# 随机数
# 共享文件夹
# 你知道
# 应用程序
# 自己的
# 可调
# 的是
# 将来
# 你可以
# 不需要
# 已有
# 要有
# 不可以
# 会在
# 下了
# 将其
# 即使是
# 几位
# 只需要
相关文章:
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
如何正确选择百度移动适配建站域名?
山东云建站价格为何差异显著?
如何通过山东自助建站平台快速注册域名?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
,想在网上投简历,哪几个网站比较好?
宝塔面板如何快速创建新站点?
如何基于云服务器快速搭建个人网站?
如何在香港服务器上快速搭建免备案网站?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
定制建站是什么?如何实现个性化需求?
建站之星后台密码遗忘?如何快速找回?
建站之星3.0如何解决常见操作问题?
大型企业网站制作流程,做网站需要注册公司吗?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
如何彻底删除建站之星生成的Banner?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
如何自定义建站之星网站的导航菜单样式?
建站之星如何防范黑客攻击与数据泄露?
网站制作公司,橙子建站是合法的吗?
建站之星如何取消后台验证码生成?
如何在阿里云香港服务器快速搭建网站?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
网站制作壁纸教程视频,电脑壁纸网站?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
如何选购建站域名与空间?自助平台全解析
如何选择建站程序?包含哪些必备功能与类型?
做企业网站制作流程,企业网站制作基本流程有哪些?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
如何通过多用户协作模板快速搭建高效企业网站?
如何高效生成建站之星成品网站源码?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
制作宣传网站的软件,小红书可以宣传网站吗?
如何在IIS服务器上快速部署高效网站?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
建站主机默认首页配置指南:核心功能与访问路径优化
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
C#如何在一个XML文件中查找并替换文本内容
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
红河网站制作公司,红河事业单位身份证如何上传?
模具网站制作流程,如何找模具客户?
如何制作网站标识牌,动态网站如何制作(教程)?
如何自定义建站之星模板颜色并下载新样式?
详解jQuery停止动画——stop()方法的使用
英语简历制作免费网站推荐,如何将简历翻译成英文?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
孙琪峥织梦建站教程如何优化数据库安全?
如何通过虚拟主机快速搭建个人网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。