博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker安装fastdfs
阅读量:7224 次
发布时间:2019-06-29

本文共 3077 字,大约阅读时间需要 10 分钟。

hot3.png

FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行文件上传、下载,通过 Tracker server 调度最终由 Storage server 完成文件上传和下载。

Tracker server 作用是负载均衡和调度,通过 Tracker server 在文件上传时可以根据一些策略找到 Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服务器。

Storage server 作用是文件存储,客户端上传的文件最终存储在 Storage 服务器上,Storageserver 没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将storage称为存储服务器。

64d3a09cfd91b322e8d42c8e591ac566dcc.jpg

服务端两个角色:

Tracker:管理集群,tracker 也可以实现集群。每个 tracker 节点地位平等。收集 Storage 集群的状态。

Storage:实际保存文件 Storage 分为多个组,每个组之间保存的文件是不同的。每个组内部可以有多个成员,

组成员内部保存的内容是一样的,组成员的地位是一致的,没有主从的概念。

 

1、拉取镜像

[root@VM_108_39_centos fastdfs]# docker pull delron/fastdfsUsing default tag: latestTrying to pull repository docker.io/delron/fastdfs ... sha256:9583cb80170c153bc12615fd077fe364a8fd5a95194b7cf9a8a32d2c11f8a49d: Pulling from docker.io/delron/fastdfs469cfcc7a4b3: Pull complete 4b4f08bd0171: Pull complete 95eef9978b96: Pull complete aff83d00c747: Pull complete 1e95dffa1075: Pull complete f114184ac28c: Pull complete 649b2ad6afe2: Pull complete 8ab2127a38c5: Pull complete 4d12f9bd27c7: Pull complete bfc05d82f0a6: Pull complete 76f2a6d84a19: Pull complete 89bd9c4e6fea: Pull complete 6c06548e40ac: Pull complete 11186700b494: Pull complete Digest: sha256:9583cb80170c153bc12615fd077fe364a8fd5a95194b7cf9a8a32d2c11f8a49dStatus: Downloaded newer image for docker.io/delron/fastdfs:latest

 

 

2.构建tracker容器:

[root@VM_108_39_centos tracker]# docker run -d --network=host --name tracker -v /docker/fastdfs/tracker:/var/fdfs delron/fastdfs tracker

 

3.构建storage容器

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

TRACKER_SERVER=192.168.1.56:22122 替换192.168.1.56为你的ip

 

4.更改端口(默认的端口为8888)

进入容器:

[root@VM_108_39_centos storage]# docker exec -it storage  /bin/bash

 

修改storage服务的http端口为91

[root@VM_108_39_centos nginx-1.12.2]# vi /etc/fdfs/storage.conf​# the port of the web server on this storage serverhttp.server_port=91

 

修改Nginx监听的端口为91:

[root@VM_108_39_centos nginx-1.12.2]# vi /usr/local/nginx/conf/nginx.conf

 

 

5、重启storage

[root@VM_108_39_centos storage]# docker restart storage ​storage​[root@VM_108_39_centos storage]# ​

 

6、测试(这里用的springboot)

下载项目

修改application.yml,将192.168.1.56替换成你的服务器ip,如下

server:  port: 8082spring:  application:    name: upload-service  servlet:    multipart:      max-file-size: 5MB # 限制文件上传的大小fdfs:  so-timeout: 1501 # 超时时间  connect-timeout: 601 # 连接超时时间  thumb-image: # 缩略图    width: 60    height: 60  tracker-list: # tracker地址    - 192.168.1.56:22122​image:  adress: http://192.168.1.56:91/

启动FastdfsApplication类,访问

上传图片进行测试。

查看返回的图片地址:

group1:文件上传后所在的 storage 组名称,在文件上传成功后有 storage 服务器返回,需要客户端自行保存。

M00:storage 配置的虚拟路径,与磁盘选项 store_path*对应。如果配置了

store_path0 则是 M00,如果配置了 store_path1 则是 M01,以此类推。

00:数据两级目录:storage 服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据

文件。

CmlsJ1wbUAyALxfhAAFywONGqMo423:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器 IP 地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。

转载于:https://my.oschina.net/suzheworld/blog/2991071

你可能感兴趣的文章
视觉冲击!12个精美绝伦的扁平化网站设计
查看>>
系统设置
查看>>
CSS基本知识5-CSS对齐
查看>>
vi 删除的一些命令
查看>>
php获取本周周一、周日时间,上周周一、周日时间,本月第一天,本月最后一天,上个月第一天,最后一天时间...
查看>>
poj----2155 Matrix(二维树状数组第二类)
查看>>
学习VC MFC开发必须了解的常用宏和指令
查看>>
第6章 适配器模式(Adapter Pattern)
查看>>
我的Hook学习笔记
查看>>
C/C++产生随机数
查看>>
C#打包制作安装程序过程全记录
查看>>
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)...
查看>>
Oracle10g 回收站及彻底删除table : drop table xx purge
查看>>
swift 类型.
查看>>
Python:线程指南
查看>>
R语言学习笔记
查看>>
iOS开发数据库篇—SQLite的应用
查看>>
java中的容器解释
查看>>
[转] 网页常用字体
查看>>
Rails NameError uninitialized constant class solution
查看>>