FastDFS使用中的几个常见问题

2023-11-03

FastDFS使用中的几个常见问题

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

1. FastDFS适用的场景以及不适用的场景

FastDFS 是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储图片、音频、视频、文档等文件。对于互联网应用,简洁高效的 FastDFS 和其他分布式文件系统相比,优势非常明显。具体情况大家可以查阅相关介绍文档,如:FastDFS架构设计文档等等。

出于简洁考虑,FastDFS 没有对文件做分块存储,因此不太适合分布式计算场景。

2. 服务器时间必须保持一致

因为 FastDFS 的精巧设计不需要存储文件索引,FastDFS 通过比较时间戳来判断文件是否同步完成。因此集群内的服务器时间要保持一致,各台服务器的时间差值不要超过 1 秒。建议采用 NTP 对时服务。

3. too many open files 错误解决方法

日志中报打开文件过多的错误,是因为系统允许一个进程打开的文件数设置太小了。Linux环境下的解决办法,修改文件 /etc/security/limits.conf,在文件尾部添加如下代码(如果已经存在则修改相应数值):

root soft nofile 65535

root hard nofile 65535

 * soft nofile 65535

 * hard nofile 65535

注: 只配置最后两行不就可以了吗,为啥还要单独为 root 用户配置呢?查了网上资料,说是*这样的通配符对 root 用户无效,所以 root 需要单独配置(嗯,阿里云ECS就配置了上面这4行)。

4. FastDFS服务启停

FastDFS server 程序自带 startstoprestart 指令,命令行示例如下:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf  [start | stop | restart]

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf  [start | stop | restart]

可以使用 kill 或者 killall 正常杀掉 fdfs_trackerdfdfs_storaged 进程,但千万不要加上 -9 参数强杀,否则可能会导致 binlog 数据丢失等问题。

5. FastDFS支持断点续传吗?

上传和下载文件均可支持。

5.1 文件上传

对于文件上传,需要先上传 appender 类型的文件,然后使用 apend 方法。

如果要上传超过 1GB 的大文件,建议采用 append 方式分多次上传,比如每次上传 64MB。需要先创建 appender 类型的文件,可以创建空的 appender 文件。

对于超大文件,如果想支持多线程上传以加快上传速度,可以采用如下3个步骤实现:

(1)上传 appender 类型的文件;
(2)调用 truncate 方法将该 appender 文件设置为最终文件大小;
(3)调用 modify 方法并发上传文件分片。

5.2 文件下载

对于文件下载,FastDFS可以指定文件偏移量和获取的文件内容大小。利用这个特性,文件下载可以实现断点续传以及多线程下载。

6. Java SDK非线程安全

FastDFS 提供的 Java SDK 是非线程安全的,有人已经踩过这个坑了。包括负责与 tracker server 交互的 TrackerClient、与 storage server 直接通信的StorageClientStorageClient1 这三个类均是非线程安全的。

为啥会出现两个 StorageClient 字样的类名呢?二者实现功能完全一样, StorageClientgroupfilename 分离的用法,StorageClient1groupfilename 合体用法(文件ID)。通常使用 StorageClient1 就好。

总结

大家在部署和使用 FastDFS 的过程中有任何疑问,欢迎在FastDFS QQ群或微信公众号交流。我可以根据大家的反馈和交流结果,继续整理 FastDFS 常见问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FastDFS使用中的几个常见问题 的相关文章

  • Missing artifact org.csource:fastdfs-client-java:jar:1.27-SNAPSHOT

    解决Maven无法下载fastdfs client java依赖 xff0c Dependency 39 org csource fastdfs client java 1 27 SNAPSHOT 39 not found 因为fastdf
  • 阿里云服务器搭建fastdfs

    fastdfs安装介绍 环境准备 本人的阿里云服务器CentOS Linux release 7 9 2009 Core 版本 xff08 通过命令cat etc redhat release查看自己的Linux版本信息 xff09 过程中
  • C++文件服务器项目—FastDFS—1

    C 43 43 文件服务器项目 FastDFS 1 前言1 项目架构2 分布式文件系统2 1 传统文件系统2 2 分布式文件系统 3 FastDFS介绍3 1 fdfs概述3 2 fdfs框架中的三个角色3 3 fdfs三个角色之间的关系3
  • FastDFS是如何解决数据一致性问题的?

    FastDFS是如何解决数据一致性问题的 本篇文章转载于 FastDFS 作者 余庆 大佬的 FastDFS分享与交流 公众号 保证数据一致性是分布式系统面临的最大难题 尤其是要做到数据强一致性 FastDFS 作为一款分布式文件系统 是如
  • 【Fastdfs】通过 docker 快速搭建集群 fastdfs 环境

    Fastdfs 通过 docker 快速搭建集群 fastdfs 环境 1 镜像构建 码云地址 https gitee com hbsky fastDFS 构建新的镜像 使用我的镜像也行 docker build t registry cn
  • 分布式文件系统 - FastDFS 在UBUNTU下安装

    分布式文件系统 FastDFS 在 CentOS 下配置安装部署 按照该博主的介绍 大部分安装操作正常 只是在创建软连接的时候报错 所以只好用笨办法启动和关闭 启动tracker usr bin fdfs trackerd etc fdfs
  • FastDFS下载文件自定义命名

    上一节我们讲述了FastDFS的搭建和文件的上传 docker搭建FastDFS及遇到的问题解决 花开花落与云卷云舒的博客 CSDN博客 这一节我们讲讲如何将上传的文件下载到我们的本机并还原为原来的文件名 一 前言 在上一节中 我们知道我们
  • Springboot 封装Fastdfs 功能模块

    整体项目结构 第一步 BuleSky 的pom xml 文件
  • FastDFS的三大误解

    FastDFS的三大误解 本篇文章转载于 FastDFS 作者 余庆 大佬的 FastDFS分享与交流 公众号 整理个别同学对FastDFS的三个误解 我将逐一澄清 误解一 FastDFS不易安装和配置 网上有人吐槽说 FastDFS 是他
  • fastdfs特点

    FastDFS是一个开源的轻量级分布式文件系统 它对文件进行管理 功能包括 文件存储 文件同步 文件访问 文件上传 文件下载 等 解决了大容量存储和负载均衡的问题 特别适合以文件为载体的在线服务 如相册网站 视频网站等等 FastDFS为互
  • Docker搭建FastDFS

    Docker搭建FastDFS 1 搜索镜像 docker search fastdfs root localhost data docker search fastdfs NAME DESCRIPTION STARS OFFICIAL A
  • fastDFS文件服务器的java客户端初始化方法ClientGlobal.init(fdfs_client.properties) 找不到配置文件路径异常的解决

    最近在使用fastDFS文件服务器的java客户端上传文件时 它的初始化方法ClientGlobal init String 出现找不到配置文件的异常 无论是写死fdfs client properties文件位置还是怎样 都找不到配置文件
  • FastDFS 学习笔记

    一 理论基础 FastDFS比较适合以中小文件为载体的在线服务 比如跟Nginx Apache 配合搭建图片服务器 分布式文件系统FastDFS FastDFS是纯C语言实现 只支持Linux FreeBSD等UNIX系统 FastDFS的
  • 使用docker方式安装FastDFS

    FastDFS 架构包括 Tracker server 和 Storage server 客户端请求 Tracker server 进行文件上传 下载 通过 Tracker server 调度 最终由 Storage server 完成文件
  • ubuntu 安装Fastdfs

    安装fastdfs依赖插件libfastcommon 下载 https github com happyfish100 libfastcommon archive V1 0 39 tar gz 创建 usr local software 目
  • FastDFS单机部署安装

    FastDFS单机部署安装 文章目录 FastDFS单机部署安装 前言 1 服务器规划 2 安装包 3 所有tracker和storage节点都执行如下操作 3 1 安装所需的依赖包 3 2 安装libfatscommon 3 3 安装Fa
  • FastDFS文件同步机制简介

    FastDFS文件同步机制简介 本篇文章转载于FastDFS作者 余庆 大佬的 FastDFS分享与交流 公众号 FastDFS 文件同步采用 binlog 异步复制方式 storage server 使用 binlog 文件记录文件上传
  • FASTDFS磁盘不足10%,如何迁移

    FASTDFS磁盘不足10 如何迁移 fastDFS的默认安装目录为home 产生的文件也会保存在home下的子目录中 由于程序运行 产生的文件越来越多 可能会导致系统盘被占满 这时 需要迁移fastdfs目录到其他硬盘目录 当出现这种情况
  • 使用docker搭建FastDFS文件系统

    使用docker搭建FastDFS文件系统 1 拉取fastdfs镜像 docker search fastdfs 这里要选择 delron fastdfs 镜像 docker pull delron fastdfs 2 启动容器 2 1
  • FastDFS storage服务器安装Nginx

    环境准备 操作系统 Centos 服务器 192 168 60 165 storage服务器 软件包 fastdfs nginx module 1 20 tar gz nginx 1 14 0 tar gz 软件包下载地址 待补充 第一步

随机推荐

  • gflags简单应用

    描述 一些利用gflag的小代码 参考文章https www cnblogs com myyan p 4798679 html 代码 gflags ParseCommandLineFlags argc argv false 用于解析命令行参
  • MyBatis之insert——主键自增和自定义主键

    一 实现描述 我们在写程序时 时常会遇到这样的问题 插入一条数据 但因有主键的存在 而有时候会报 违反唯一性约束 的错误 下面呢 我们就来利用MyBatis来解决这个问题 二 此文使用的数据库为MySQL 如需要使用其他数据库 请做适当更改
  • day_01_Spring_IOC(1~24)

    Spring spring 核心组成部分 IOC AOP 轻量级 依赖包少 开源 框架 IOC 控制反转 将创建对象的操作交给Spring AOP 面向切面 不修改源码实现功能的拓展 Spring的优点 通过IOC解耦 简化开发 支持AOP
  • 大厂面试快问快答,10分钟搞定MySQL夺命20问,你都能接住吗?

    号外号外 死磕 Java 并发编程 系列连载中 大家可以关注一波 死磕 Java 并发编程05 阿里面试失败后 一气之下我图解了Java中18把锁 死磕 Java 并发编程04 说说Java Atomic 原子类的实现原理 死磕 Java
  • = =和equals的区别是什么

    一 Java基础 和equals的区别是什么 该问题是Java中最基本的小白问题 但是很多人不去注意 就会导致之后编写代码的时候出现一些最基本的错误 却总是找不到错误来源 其实很简单 只要了解了之后就会觉得 哎呦 一般般了 在Java中是操
  • Burpsuite的抓包过程

    学习笔记 Burpsuite的抓包过程 原理 web数据包 gt burpsuite gt 服务器 cycle 数据的请求和响应过程 web端用户请求 服务端数据响应称之为一个cycle Burpsuite抓包需要和浏览器接通 配置浏览器的
  • VMware虚拟机(v17)安装macOS Monterey图文教程(超详细)

    说起虚拟机安装macOS 其实也挺简单的 但对于大多数没接触过Mac系统的朋友来说 可能不知道从何入手 今天就给大家出一个最详细的图文安装教程 我们选择安装的是macOS的Monterey版 其它版本安装也一样 第一步 虚拟机的选择 目前在
  • Java 重写:使用方法重写实现多态性

    Java 重写 使用方法重写实现多态性 在Java编程中 方法重写是一种实现多态性的重要方式 方法重写允许子类重新定义父类中已经声明的方法 并且在运行时根据对象的实际类型来调用相应的方法 这篇文章将详细介绍Java中方法重写的概念 语法和使
  • 合宙Air103

    基础资料 基于Air103开发板 Air103 LuatOS 文档 上手 开发上手 LuatOS 文档 探讨重点 对官方DISP OLED demo中功能的复现 进行相关内容的学习及探讨 实现功能 功能 lua快速驱动0 96寸OLED i
  • 【目标检测 Object Detection】从YOLO v1 到 YOLO v3 算法总结

    文章目录 0 前言 1 YOLO v1 1 1 整体算法 1 2 特点 1 3 总结 2 YOLO v2 2 1 整体算法 2 2 特点 2 3 总结 3 YOLO v3 3 1 整体算法 3 2 特点 3 3 总结 0 前言 YOLO系列
  • 如何防止以及解决别人域名恶意解析到主机ip

    如何防止以及解决别人域名恶意解析到主机ip 恶意解析 是指有人通过域名A记录直接解析别人IP地址 从而得到一个在访问者眼中完全相同网站 也会造成搜索引擎收录别人的域名主要被称作 PR劫持 恶意网站镜像 恶意克隆 恶意解析域名到自己的服务器等
  • 新星计划【Java微服务+云原生】赛道开启!

    前排提醒 这里是新星计划2023 微服务 云原生 学习方向的报名入口 一经报名 不可更换 报名入口 新星计划2023 微服务 云原生 学习方向报名入口 CSDN社区 一 关于本学习方向导师 博客昵称 鹤冲天Pro 博客主页 鹤冲天Pro的博
  • Unity 模型执行完动作总回到原位的问题-解决方法

    1 首先在模型的Animator组件中勾上 应用根运动 把更新模式改成 Animate Physics 把剔除模式改成 剔除更新变换 2 设置原本动画文件的烘焙动作选项 以根变换旋转下的烘焙为例 若勾上 则效果为 模型物体不会随着动画改变旋
  • 【小生作品展】xxx物联管理系统(原型)

    一 背景 xxx物联管理系统 原型 为小生的一个软件原型作品 对物联网管理系统的架构和组成做了一个简单的抽象 该作品诞生于2020的春节期间 看来只有闲的时候战斗力才强啦 哈哈 使用Qt完成其原型的设计和开发 有以下特点 1 带有一个侧边导
  • 电脑上怎么设置自动按某个键_五个电脑技术小常识,你值得拥有!

    对于一般用户而言 位于键盘左上方的ESC键并不常用 但你知道吗 其实借助ESC键还能实现不少快捷操作哦 1 上网时 如果点错了某个网址 直接按ESC键即可停止打开当前网页 2 上网时总免不了要填写一些用户名什么的 如果填错了 按ESC键即可
  • Lintcode 464. 整数排序 II 归并排序递归与非递归实现 java

    实现思路 https blog csdn net morewindows article details 6678165 OJ链接 https www lintcode com problem sort integers ii descri
  • 如何修改Tomcat默认端口号

    问题描述 众所周知Tomcat的默认端口号是8080 如何修改这个默认的端口号呢 实现步骤 下面以8081端口号为例 将Tomcat的端口号进行修改 一 修改Tomcat端口号 步骤如下 1 先找到conf文件夹 2 打开server xm
  • AttributeError: module ‘safetensors‘ has no attribute ‘torch‘

    问题 AttributeError module safetensors has no attribute torch 环境 Python3 10 Conda 解决方法 在safetensors包的 init py文件中加入如下 from
  • UE4 C++变量的声明,简单的位置获取,和设置位置

    UE4 C 变量的声明 简单的位置获取 和设置位置 pragma once include CoreMinimal h include GameFramework Actor h include MyActor generated h UC
  • FastDFS使用中的几个常见问题

    FastDFS使用中的几个常见问题 本篇文章转载于FastDFS作者 余庆 大佬的 FastDFS分享与交流 公众号 1 FastDFS适用的场景以及不适用的场景 FastDFS 是为互联网应用量身定做的一套分布式文件存储系统 非常适合用来