Day102 FastDFS

31 篇文章 0 订阅

前言

先思考一下,现在上传的功能,有没有什么问题?

上传本身没有任何问题,问题出在保存文件的方式,我们是保存在服务器机器,就会有下面的问题:

  • 单机器存储,存储能力有限

  • 无法进行水平扩展,因为多台机器的文件无法共享,会出现访问不到的情况

  • 数据没有备份,有单点故障风险

  • 并发能力差

这个时候,最好使用分布式文件存储来代替本地文件存储。

FastDFS介绍

  • 分布式文件系统(Distributed File System):是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。通俗来讲:
    • 传统文件系统管理的文件就存储在本机。

    • 分布式文件系统管理的文件存储在很多机器,这些机器通过网络连接,要被统一管理。无论是上传或者访问文件,都需要通过管理中心来访问

  • FastDFS是由淘宝的余庆先生所开发的一个轻量级、高性能的开源分布式文件系统。用纯C语言开发,功能丰富:

    • 文件存储

    • 文件同步

    • 文件访问(上传、下载)

    • 存取负载均衡

    • 在线扩容

  • 适合有大容量存储需求的应用或系统。同类的分布式文件系统有谷歌的GFS、HDFS(Hadoop)、TFS(淘宝)等。

架构图

FastDFS两个主要的角色:Tracker Server 和 Storage Server 。

  • Tracker Server:跟踪服务器,主要负责调度storage节点与client通信,在访问上起负载均衡的作用,和记录storage节点的运行状态,是连接client和storage节点的枢纽。

  • Storage Server:存储服务器,保存文件和文件的meta data(元数据),每个storage server会启动一个单独的线程主动向Tracker cluster中每个tracker server报告其状态信息,包括磁盘使用情况,文件同步情况及文件上传下载次数统计等信息

  • Group:文件组,多台Storage Server的集群。上传一个文件到同组内的一台机器上后,FastDFS会将该文件即时同步到同组内的其它所有机器上,起到备份的作用。不同组的服务器,保存的数据不同,而且相互独立,不进行通信。

  • Tracker Cluster:跟踪服务器的集群,有一组Tracker Server(跟踪服务器)组成。

  • Storage Cluster :存储集群,有多个Group组成。

FastDFS安装

从安装虚拟机和CentOS到安装FastDFS配置Nginx,整个过程还是挺复杂的,但只要跟着教材一步一步的去做,问题不大。一开始教程里用的是VisualBox和xshell,我也安装了这个虚拟机自己下载了镜像,可到最后xshell一直连不上,虚拟机IP确定没错,网络方式按网上设成了桥接,还是不行。最后换回了前面Linux教程用的VmWare和CRD才成功。

期间有些小步骤会不小新出错,比如leyou的地址直接写到usr下了,比如Nginx的相关配置写错了,最后查看Nginx运行状态发现worker线程一直没有,追根溯源才发现是配置没改好,整个过程虽然艰辛,但出错找问题的过程也加深了对知识的理解。

  • 安装一堆工具,比如c的编译工具,解压工具等
  • 安装fastdfs,配置Tracker和Storage的存储路径
  • 安装配置fastdfs-nginx-module
  • 安装配置Nginx
  • 注意检查nginx和fdfs的运行状态:nginx -s reload
  • 设置为开机自启动
  • 注意ip要始终与虚拟机的ip一致

FastDFS改造文件上传

读懂即可

 

坑:最后快成功了,服务器一致报空指针异常,错误行在Controller传文件到Service的一句,debug后发现根本没进去Service,自己返回一个路径前端图片也能回显,文件传参过来了,最后发现是前面的类忘加@Autowire,调用方法时发现对象为空,这个以后一定要注意。

成功留念

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值