FastDFS的三大误解
FastDFS的三大误解
本篇文章转载于 FastDFS 作者 余庆 大佬的 FastDFS分享与交流 公众号。
整理个别同学对FastDFS的三个误解,我将逐一澄清。
误解一 、FastDFS不易安装和配置
网上有人吐槽说 FastDFS 是他见过最难安装和配置的一款开源软件。首先自我检讨一下,源码目录下的安装文档 INSTALL 尽管步骤基本都讲到了,但不够清晰明了,我昨天做了整理,感觉清爽多了。
另外一点是 FastDFS 版本发布有时比较密集,有的版本除了 tracker sever 和 storage server 要同时升级外,还需要 nginx扩展模块 和 客户端SDK 一起升级,版本配合关系写在各个模块源码目录的 INSTALL 或 HISTORY 文件中,如果大家不注意查看,容易出现版本不匹配导致编译不通过等问题。从 V6.00 开始,FastDFS 每个版本发布都会推送一篇微信公众号文章,除了介绍新增功能和特性外,还会说明需要同步升级的相关模块。
再说一下 FastDFS 配置。FastDFS 源码的 conf 目录下自带了配置文件示例,第一次执行安装脚本将被复制到 /etc/fdfs
目录下。使用者直接修改 /etc/fdfs
下对应的配置文件即可。看到配置文件中的若干配置项(参数),take easy(不要感到害怕),因为大多数配置项采用默认配置就可以,你只需要修改几个关键参数即可。像 base_path 这样的关键参数如果你没有修改的话,启动程序时将报错,你可以根据报错信息修改相应的配置项。
自认为FastDFS的日志文件还是比较周全和有营养的。大家在使用过程中如果发现日志有表达不清楚或让人误解的地方,请反馈给我。
误解二 、FastDFS不能存储大文件
因为 FastDFS 没有对大文件做特殊处理和支持,FastDFS 非常适合存储小文件(10MB以下),也适合存储中型文件(小于1GB),可以存储大文件(小于10GB),不太适合存储超大文件(大于10GB)。
FastDFS 上传大文件时,可以先上传 appender 类型的文件,然后以分片方式(比如每次64MB)调用 append 方法,完成上传后可以调用 V6.02 开始支持的regenerate_appender_filename 方法将文件改名为普通文件。
FastDFS 支持指定文件偏移量和下载的内容大小,使用这一特性可以支持大文件断点续传,也可以支持多线程方式下载大文件。
误解三、FastDFS限制存储的文件数
为了防止一个目录下的文件数过多影响访问性能,FastDFS采用两级目录来保存文件。每一级目录最大 256 个子目录(默认配置为 256,可以酌情改小),两级目录对应的存储目录数为 256 * 256 = 65536。如果平均一个目录下保存 1k 个文件,那么存储的文件总数将超过 6kw。
为什么大家会认为 FastDFS 将限制存储的文件数呢?
是因为 FastDFS 的一种做法让大家产生了误解,这就是默认的按目录轮流存储方式(参数 file_distribute_to_path 为 0,即 轮流存储方式,默认设置就是 0)。此时还有一个参数 file_distribute_rotate_count 来设置存储到多少个文件后轮转到下一个目录。需要澄清的是,轮转到下一个目录的依据,不是当前目录已存储的文件数(实际存放文件数),而是本轮已存储的文件数。这是个内存计数器,在有更新的情况下会定期刷到文件中。引入这两个参数的目的,是让存储目录下的文件尽可能分散(防止文件过度集中),但又不保证绝对平均分布。比如可能一个目录下存在的文件数为 200(两台storage server 均可以上传文件的情况下),但另外一个目录下的文件数却只有 180(本来存放了 200 个文件,其中 20 个文件后来被删除了)。
最后贴一下引起大家误解的参数 file_distribute_rotate_count 配置示例:
# valid when file_distribute_to_path is set to 0 (round robin).# when the written file count reaches this number, then rotate to next path.# rotate to the first path (00/00) after the last path (such as FF/FF).# default value is 100file_distribute_rotate_count = 100
FastDFS的三大误解相关推荐
- 服务器租用的三大误解是什么
1.租用的服务器意味着出让数据管理权 用户无法物理访问服务器,服务器供应商限制了用户的可访问性和控制权.事实上,访问和控制,很大程度上取决于服务器供应商和所选择的服务类型.通常,优质的服务器供应商都会 ...
- 科普: 4G太慢? 你对网速有误解!
随着4G手机上网的全面普及 对手机网速的各种吐槽愈演愈烈 真的是网速太烂吗? 10086客服妹纸泣血整理 --上亿用户对4G的三大误解,快来看看有你吗? 一.卡不换怪我喽 sim卡就像一张上路通行证 ...
- 开源大数据周刊-第49期
摘要: 开源大数据周刊-第49期 资讯 实时流数据分析--2017 年的 27 个预测 概述:根据Markets & Markets的预测,流数据分析市场将从 2016 年的 30 8 亿美元 ...
- 雷军灵魂三问,财报有点打脸
来源|深燃(shenrancaijing) 作者|金玙璠 编辑|魏佳 华为失利之后,雷军公开表示郁闷,小米紧接着传来喜报. 熬过了产能吃紧的一季度.海外疫情爆发的二季度,11月24日,小米集团公布的2 ...
- 人民不需要“跨界”而来的网红
图片来源于网络 文|陈小江 来源 | 螳螂财经(ID:TanglangFin) 网红不仁,以万物为刍狗. 近日,互联网科技第一网红罗永浩被限制消费迅速刷屏,引发热议.随后,罗永浩在微博发布<一个 ...
- 小米的高端之路,稳了
作者 | 小葳 出品 | 子弹财经 根据中国信通院发布的2020年11月国内手机市场运行分析报告,2020年1到11月,国内手机市场总体出货量累计2.81亿部,同比下降21.5%.根据小米财报,今年第 ...
- 中小企业对于云计算的3大误解
在本文中,CIO.com网站的Paul Mah将为广大读者破除中小型企业对于云计算采用的三大的误区. 现如今,中小企业的创业道路可谓是举步维艰,而试图推动中小企业的进一步成长更是一件难上加难的事情.但 ...
- 肝了3版才满意:分布式系统之CAP理论,我们对它的理解和误解
引言 CAP 理论,相信很多人都听过,它是指: 一个分布式系统最多只能同时满足一致性(Consistency).可用性(Availability)和分区容错性(Partition tolerance) ...
- java简述会话对象的生命周期_简述Java Web三大作用域对象
Java Web三大作用域对象 这三个对象的作用域和生命周期--从上往下依次递增: 上面最小,下面最大. 1.HttpServletRequest--请求对象 HttpServletRequest是生 ...
最新文章
- 微信小程序/uni-app 封装请求
- 智考优品职称计算机考试,智考优品Excel2003职称计算机考试模拟题.doc
- js中document.write()使用方法
- windows下的库文件在linux的使用,Windows、Linux之间传输文件的几种方式
- PHP中删除目录的三种方法
- 管理角色认知-新晋管理常常犯的错
- SharePoint 2013开发入门探索(一)- 自定义列表
- 三个月计算机培训班,三个月复盘:学完两个设计软件,并开始学画画
- 如何使用github中的pull request功能?
- 数据卡片_E015 如何批量汇总工作簿数据,形成独立工作簿信息卡片
- oracle 分割字符成数组,oracle依据分隔符将字符串分割成数组函数
- Leetcode每日一题:424.longest-repeating-character-replacement(替换后的最长重复字符)
- 对飞行前请求的响应未通过访问控制检查:它没有http ok状态。_HTTP 缓存
- JAVA环境变量的设置及修改
- python微信小程序抢购教程_微信小程序系统教程[高级阶段]——python版电商系统...
- 今日头条php笔试题,今日头条笔试题回顾及个人答案参考
- 对格斗游戏的一点想法
- 简述python 的模块的分析
- 70级圣骑士OK了,纪念下先!
- 集成学习【三】:Bagging结合神经网络及代码实现