解决方案

玩转Fastdfs

seo靠我 2023-09-25 00:53:00

FastDFS

FastDFS是一个开源的轻量级分布式文件系统。它解决了大数据量存储和负载均衡等问题。特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务,如相册SEO靠我网站、视频网站等等

特性

文件不分块存储,上传的文件和OS文件系统中的文件一一对应

支持相同内容的文件只保存一份,节约磁盘空间

下载文件支持HTTP协议,可以使用内置Web Server,也可以和其他Web SEO靠我Server配合使用

支持在线扩容

支持主从文件

核心架构

client业务请求方

客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。FastDFS向使用SEO靠我者提供基本文件访问接口,比如upload、download、append、delete等,以客户端库的方式提供给用户使用。

tracker大哥

跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记SEO靠我录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。

storage小弟

存储服务器(又称:存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上。StSEO靠我orage server直接利用OS的文件系统调用管理文件。

group

组, 也可称为卷。 同组内服务器上的文件是完全相同的 ,同一组内的storage server之间是对等的, 文件上传、 删除等操SEO靠我作可以在任意一台storage server上进行

docker下载

拉取镜像

docker pull registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs

启动SEO靠我器(修改ip)【自启动】

docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=192.168SEO靠我.66.101 -e WEB_PORT=8888 -v ${HOME}/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuoSEO靠我/fastdfs

查看容器,找到fastdfs容器的id

docker images

进入容器

docker exec -it ea5bb54e1180 bash

修改client.conf文件核对一下即可SEO靠我

vi /etc/fdfs/client.conf

#需要修改的内容如下 可以不一致,不用改

base_path=/home/fastdfs

#tracker服务器IP和端口

tracker_server=1SEO靠我92.168.139.128:22122

fastdfs命令

上传

fdfs_upload_file /etc/fdfs/client.conf /opt/test1.info

会把/opt路径下的test1SEO靠我.info保存到设置的storage存储路径

fdfs_upload_file <config_file> <local_filename> [storage_ip:port] [store_path_SEO靠我index]

参数含义:

<config_file> :配置文件路径

<local_filename> :本地文件路径

[storage_ip:port] :(可选参数)

[store_path_index] SEO靠我:(可选参数)

下载

fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKhCZWM2EFKAdOn9AAAAFEtV3as48.infSEO靠我ogroup1/M00/00/00/wKhCZWM2EFKAdOn9AAAAFEtV3as48.info

把这个文件下载到此目录

fdfs_download_file <config_file> <filSEO靠我e_id> [local_filename] [<download_offset> <download_bytes>]

参数含义:

<config_file> :配置文件路径

<file_id> :文件在FSEO靠我astDFS中的唯一文件标识,即卷名+文件名

[local_filename] :文件下载地址

<download_offset> :(可选参数)文件下载开始时间

<download_bytes> :(可选SEO靠我参数)文件下载的字节数

查看文件信息

fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/wKhCZWM2EFKAdOn9AAAAFEtV3as48SEO靠我.info

fdfs_file_info <config_file> <file_id>

参数含义:

<config_file> :配置文件路径

<file_id> :文件在FastDFS中的唯一文件标识,即SEO靠我卷名+文件名

删除慎用

dfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKhCZWM2EFKAdOn9AAAAFEtV3as48.infSEO靠我o

注意:

删除指令使用后,文件在该卷中的所有备份都会被删除,因为卷内的存储节点会相互同步,故慎用

fdfs_delete_file <config_file> <file_id>

参数含义:

<config_SEO靠我file> :配置文件路径

<file_id> :文件在FastDFS中的唯一文件标识,即卷名+文件名

fastdfs实战

查看容器id

docker images

进入容器

docker exec -it eaSEO靠我5bb54e1180 bash

查看图片路径

find / -name *.jpg

把虚拟机的文件cp到容器里面

先把文件上传到虚拟机中,再把文件cp到docker容器中(先创建好目录)

docker cp 目SEO靠我录名称 容器id:/usr/local

如:docker cp /usr/local/images/rentPro ea5bb54e1180:/usr/local/images/rentPro

上传文件SEO靠我命令/配置文件的路径/需要上传文件的路径

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /etc/fdfs/anti-steal.jpg

上传后获得路径SEO靠我group1/M00/00/00/wKhCZWQ8MVqAU_ErAABdreSfEnY378.jpg

删除命令/配置文件的路径/需要上传文件的路径

/usr/bin/dfs_delete_file SEO靠我/etc/fdfs/client.conf group1/M00/00/00/wKhCZWM2EFKAdOn9AAAAFEtV3as48.info

访问

192.168.66.101:8888/groupSEO靠我1/M00/00/00/wKhCZWQ8MVqAU_ErAABdreSfEnY378.jpg
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2