FastDFS的三大误解

本篇文章转载于 FastDFS 作者 余庆 大佬的 FastDFS分享与交流 公众号。

整理个别同学对FastDFS的三个误解,我将逐一澄清。

误解一 、FastDFS不易安装和配置

网上有人吐槽说 FastDFS 是他见过最难安装和配置的一款开源软件。首先自我检讨一下,源码目录下的安装文档 INSTALL 尽管步骤基本都讲到了,但不够清晰明了,我昨天做了整理,感觉清爽多了。

另外一点是 FastDFS 版本发布有时比较密集,有的版本除了 tracker severstorage server 要同时升级外,还需要 nginx扩展模块客户端SDK 一起升级,版本配合关系写在各个模块源码目录的 INSTALLHISTORY 文件中,如果大家不注意查看,容易出现版本不匹配导致编译不通过等问题。从 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_path0,即 轮流存储方式,默认设置就是 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. 服务器租用的三大误解是什么

    1.租用的服务器意味着出让数据管理权 用户无法物理访问服务器,服务器供应商限制了用户的可访问性和控制权.事实上,访问和控制,很大程度上取决于服务器供应商和所选择的服务类型.通常,优质的服务器供应商都会 ...

  2. 科普: 4G太慢? 你对网速有误解!

    随着4G手机上网的全面普及 对手机网速的各种吐槽愈演愈烈 真的是网速太烂吗? 10086客服妹纸泣血整理 --上亿用户对4G的三大误解,快来看看有你吗? 一.卡不换怪我喽 sim卡就像一张上路通行证 ...

  3. 开源大数据周刊-第49期

    摘要: 开源大数据周刊-第49期 资讯 实时流数据分析--2017 年的 27 个预测 概述:根据Markets & Markets的预测,流数据分析市场将从 2016 年的 30 8 亿美元 ...

  4. 雷军灵魂三问,财报有点打脸

    来源|深燃(shenrancaijing) 作者|金玙璠 编辑|魏佳 华为失利之后,雷军公开表示郁闷,小米紧接着传来喜报. 熬过了产能吃紧的一季度.海外疫情爆发的二季度,11月24日,小米集团公布的2 ...

  5. 人民不需要“跨界”而来的网红

    图片来源于网络 文|陈小江 来源 | 螳螂财经(ID:TanglangFin) 网红不仁,以万物为刍狗. 近日,互联网科技第一网红罗永浩被限制消费迅速刷屏,引发热议.随后,罗永浩在微博发布<一个 ...

  6. 小米的高端之路,稳了

    作者 | 小葳 出品 | 子弹财经 根据中国信通院发布的2020年11月国内手机市场运行分析报告,2020年1到11月,国内手机市场总体出货量累计2.81亿部,同比下降21.5%.根据小米财报,今年第 ...

  7. 中小企业对于云计算的3大误解

    在本文中,CIO.com网站的Paul Mah将为广大读者破除中小型企业对于云计算采用的三大的误区. 现如今,中小企业的创业道路可谓是举步维艰,而试图推动中小企业的进一步成长更是一件难上加难的事情.但 ...

  8. 肝了3版才满意:分布式系统之CAP理论,我们对它的理解和误解

    引言 CAP 理论,相信很多人都听过,它是指: 一个分布式系统最多只能同时满足一致性(Consistency).可用性(Availability)和分区容错性(Partition tolerance) ...

  9. java简述会话对象的生命周期_简述Java Web三大作用域对象

    Java Web三大作用域对象 这三个对象的作用域和生命周期--从上往下依次递增: 上面最小,下面最大. 1.HttpServletRequest--请求对象 HttpServletRequest是生 ...

最新文章

  1. 微信小程序/uni-app 封装请求
  2. 智考优品职称计算机考试,智考优品Excel2003职称计算机考试模拟题.doc
  3. js中document.write()使用方法
  4. windows下的库文件在linux的使用,Windows、Linux之间传输文件的几种方式
  5. PHP中删除目录的三种方法
  6. 管理角色认知-新晋管理常常犯的错
  7. SharePoint 2013开发入门探索(一)- 自定义列表
  8. 三个月计算机培训班,三个月复盘:学完两个设计软件,并开始学画画
  9. 如何使用github中的pull request功能?
  10. 数据卡片_E015 如何批量汇总工作簿数据,形成独立工作簿信息卡片
  11. oracle 分割字符成数组,oracle依据分隔符将字符串分割成数组函数
  12. Leetcode每日一题:424.longest-repeating-character-replacement(替换后的最长重复字符)
  13. 对飞行前请求的响应未通过访问控制检查:它没有http ok状态。_HTTP 缓存
  14. JAVA环境变量的设置及修改
  15. python微信小程序抢购教程_微信小程序系统教程[高级阶段]——python版电商系统...
  16. 今日头条php笔试题,今日头条笔试题回顾及个人答案参考
  17. 对格斗游戏的一点想法
  18. 简述python 的模块的分析
  19. 70级圣骑士OK了,纪念下先!
  20. 集成学习【三】:Bagging结合神经网络及代码实现

热门文章

  1. 【java8】并行流Stream
  2. 倾斜摄影技术下打造的三维景区 [转]
  3. 普吉岛泡酒店浮潜攻略——我住过的普吉岛的8个酒店
  4. JAVA的Stream
  5. 金蝶K3案例教程采购管理前台操作
  6. for循环canvas渲染图片
  7. 与君共品代码: Spelling Corrector
  8. SQLServer中的N是什么意思?
  9. Java in Tarena_Spring Note04
  10. Facebook sdk嵌入,登陆与注销