热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

FastDFS原理系列文章

FastDFS原理系列文章基于FastDFS5.035.042014-12-19一、概述FastDFS文档极少,只能找到一些宽泛的架构文档,以

FastDFS原理系列文章

 

基于FastDFS 5.03/5.04



2014-12-19

 

一、概述

      FastDFS文档极少,只能找到一些宽泛的架构文档,以及ChinaUnix论坛上作者对网友提问的一些回答。对于要将FastDFS应用到生产系统来说,这点了解绝对是不够的。

      这段时间研究FastDFS源码,并且做了大量的性能测试,中间也做了大量的笔记,基本上把程序的结构与主要的操作摸索清楚,因此写了一些文章即是对前段工作的总结,同时也分享给想更多了解FastDFS内部的同行们。这里对每篇文章做个介绍。


1、机器之间的同步

      Storage之间的同步可能是大家首先关心的了,这篇文章做了详细的介绍,最后我还写了注意事项,主要是性能方面的。

FastDFSBinlog同步》 http://blog.csdn.net/hfty290/article/details/42041155

 

2、添加新机器同步

      大家可能不怎么会注意到这部分,但是其实很重要。在实际的生产系统,坏掉一台机器,或者为了读压力而增加机器,等都是很正常的。在一个运行的系统上添加一台机器涉及到存量文件的同步与融入到系统中,下面这篇文章做了详细的回答。

FastDFS之添加机器同步》 http://blog.csdn.net/hfty290/article/details/42041953

 

3、磁盘恢复

      线上机器坏个磁盘算是个大概率事件了,换了一个新磁盘,问题来了,数据怎么恢复啊。不用急,重启下Storaged,他会检测到并进行恢复,虽然恢复时间可能要很长(数据量大时),这篇文章对这个功能做了说明。

FastDFS之磁盘恢复过程》 http://blog.csdn.net/hfty290/article/details/42032817

 

4Storaged程序结构

      到此处Storaged主要的功能点已经讲述了,或者你还想知道程序内部是如何组织的,线程之间的协调等信息,请看这篇文章。

FastDFSStorage程序框架》 http://blog.csdn.net/hfty290/article/details/42048001

 

5ClientTracker的通讯

      现在是时候从客户端角度来端详下Tracker了,因为不管是上传、下载、删除等操作都需要先查询Tracker。那么这些查询Tracker是如何计算,并返回的呢?请看本篇。

FastDFS之客户端与Tracker通讯》http://blog.csdn.net/hfty290/article/details/42064429

 

6、合并存储

      海量小文件导致性能下降,可能大家都听说过。福音是FastDFS通过合并小文件成大文件的方式来规避这个问题。FastDFS是如何实现这个功能的,详细请看这里。

FastDFS合并存储原理分析》 http://blog.csdn.net/hfty290/article/details/42026215

 

7Tracker-Leader选举

      看过了FastDFS合并存储原理分析》这篇文章后,对于其中提到的Tracker-Leader如何选举可能会好奇,通过这篇文章你会看到Leader的选举过程。

FastDFSTracker-Leader选择》 http://blog.csdn.net/hfty290/article/details/42030339

 

8、合并存储设计缺陷

      对于FastDFS合并存储功能不得不面对一个问题,在某些情况下会导致数据错误或丢失。你在看FastDFS合并存储原理分析》这篇文章时可能已经发现了,现在让我们完完整整地重现下这种错误的出现,请看。

FastDFS之合并存储缺陷导致数据丢失或错误》 http://blog.csdn.net/hfty290/article/details/42030481

 


推荐阅读
  • 该平台旨在为大型企业提供一个高效、灵活且可扩展的分布式微服务架构解决方案。它采用模块化、微服务化和热部署的设计理念,结合当前最先进且无商业限制的主流开源技术,如Spring Cloud、Spring Boot2、MyBatis、OAuth2和Element UI,实现前后端分离的系统管理平台。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Navicat Premium 15 安装指南及数据库连接配置
    本文详细介绍 Navicat Premium 15 的安装步骤及其对多种数据库(如 MySQL 和 Oracle)的支持,帮助用户顺利完成软件的安装与激活。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文介绍了在使用Visual Studio 2015进行项目开发时,遇到类向导弹出“异常来自 HRESULT:0x8CE0000B”错误的解决方案。通过具体步骤和实践经验,帮助开发者快速排查并解决问题。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文深入探讨了一家企业的制度体系重构与升级过程,通过具体案例展示了如何在战略意图和管理理念指导下,系统性地提升企业管理制度的有效性和可操作性。 ... [详细]
  • 解决IIS无法访问映射网络驱动器的问题
    探讨IIS在尝试访问映射的网络驱动器时遇到的问题及其解决方案,包括配置和权限设置等方面的详细分析。 ... [详细]
author-avatar
sfktrd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有