写在前面

图片/文件服务器,顾名思义就是存文件呗,有的人用阿里云的现有服务,有的把文件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服务器处理静态文件示例
# 文件服务器
# 随机数
# 共享文件夹
# 你知道
# 应用程序
# 自己的
# 可调
# 的是
# 将来
# 你可以
# 不需要
# 已有
# 要有
# 不可以
# 会在
# 下了
# 将其
# 即使是
# 几位
# 只需要
相关文章:
网站制作公司排行榜,抖音怎样做个人官方网站
如何快速重置建站主机并恢复默认配置?
智能起名网站制作软件有哪些,制作logo的软件?
如何在云主机快速搭建网站站点?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
营销式网站制作方案,销售哪个网站招聘效果最好?
建站之星安装后界面空白如何解决?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
广州商城建站系统开发成本与周期如何控制?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
建站与域名管理如何高效结合?
建站主机是否等同于虚拟主机?
建站之星安装提示数据库无法连接如何解决?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
建站之星如何快速更换网站模板?
官网网站制作腾讯审核要多久,联想路由器newifi官网
如何注册花生壳免费域名并搭建个人网站?
建站OpenVZ教程与优化策略:配置指南与性能提升
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
如何通过老薛主机一键快速建站?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
如何用西部建站助手快速创建专业网站?
制作电商网页,电商供应链怎么做?
建站之家VIP精选网站模板与SEO优化教程整合指南
如何快速搭建支持数据库操作的智能建站平台?
Swift中swift中的switch 语句
建站主机空间推荐 高性价比配置与快速部署方案解析
网站制作话术技巧,网站推广做的好怎么话术?
微信推文制作网站有哪些,怎么做微信推文,急?
宝塔建站助手安装配置与建站模板使用全流程解析
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
建站之星安装路径如何正确选择及配置?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
建站之星如何通过成品分离优化网站效率?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
建站主机与虚拟主机有何区别?如何选择最优方案?
建站之星如何实现网站加密操作?
如何用免费手机建站系统零基础打造专业网站?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
高性价比服务器租赁——企业级配置与24小时运维服务
制作网站怎么制作,*游戏网站怎么搭建?
高端企业智能建站程序:SEO优化与响应式模板定制开发
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
如何在建站主机中优化服务器配置?
中山网站制作网页,中山新生登记系统登记流程?
*请认真填写需求信息,我们会在24小时内与您取得联系。