• FastDFS+docker建立分布式文件系统


    1,为什么需要单独搭建分布式文

    在单系统时代,可以在系统的resource目录下直接建立image,file目录用于存储图片等各种文件,这样做优点用处,直接在项目需要处引用图片就行,但是,缺点也非常明显,代码和文件资源相互杂糅,导致系统臃肿混乱,并且随着静态资源的增多,导致加载速度下降,并且不利于吸引同扩展,出于各种考虑,单独分离出文件系统

    2,FastDFS相关知识点

    概念:FastDFS 是以C语言开发的一项开源轻量级分布式文件系统,他对文件进行管理,主要功能有:文件存储,文件同步,文件访问(文件上传/下载),特别适合以文件为载体的在线服务,如图片网站,视频网站等

    架构:FastDFS分为客户端(client),追踪服务器(tracker server),存储服务器(storage server)三个角色

    • 客户端(client):主要是上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。每个客户端服务器都需要安装Nginx
    • 服务服务器(tracker server):,主要做调度工作,接收客户端请求,记录存储服务器集群中的的状态,然后调度文件的存储位置
    • 存储服务器(storage server):用于存储文件和文件属性

    文件的存储过程:

    3,利用docker在Linux上安装FastDFS,引用地址(https://zhuanlan.zhihu.com/p/89922854

    1)拉取镜像

    sudo docker pull delron/fastdfs

    FastDFS中包含了storage镜像和tracker镜像还有nginx服务

     2)构建并且运行运行trracker镜像

    docker run -d --network=host --name tracker -v /root/fdfs:/var/root delron/fastdfs tracker

    3)构建并且运行stroragei镜像

    docker run -d --network=host --name storage -e TRACKER_SERVER=192.168.99.100:22122 -v /root/fdfs:/var/root/fdfs -e GROUP_NAME=group1 delron/fastdfs storage

    -e TRACKER_SERVER = 你的Linux ip地址, -v 表示把 外部Linux  的 /root/fdfs目录映射到  docker的  /var/root/fdfs的目录下,也就是说,文件上传到到docker的/root/fdfs文件目录下的时候,文件辉转存到镜像外Linxu系统的 /root/fdfs目录下

    4)进入storage镜像

    docker exec -it storage /bin/bash

    5)随便下载一张图片

    wget https://upload-images.jianshu.io/upload_images/11693390-a26b21909429f7d2.png

    6)上传图片

    /usr/bin/fdfs_upload_file /etc/fdfs/client.conf 11693390-a26b21909429f7d2.png

    7)得到字符串地址

    group1/M00/00/00/wKglyF62tnyACzI-AC-ojGdpZlE570.png

    这段字符串由组名,虚拟磁盘路径,数据两级目录,文件名组成

    8)可以通过ip地址+端口号(默认8888+地址 访问图片(实际项目中此地址会存入数据库)

  • 相关阅读:
    [LeetCode]Add Two Numbers
    [LeetCode]Longest SubString Without Repeating Characters
    [LeetCode]Median of Two Sorted Arrays
    [LeetCode]Two Sum
    动态规划
    [shell编程]一个简单的脚本
    一些linux的问题
    核稀疏表示分类(KSRC)
    conda 按照指定源下载python包
    python 保留两位小数
  • 原文地址:https://www.cnblogs.com/hunt1coder/p/12860382.html
Copyright © 2020-2023  润新知