用一次FastDFS
FastDFS
c编写的分布式文件系统,用于搭建文件服务器集群提供文件的上传、下载
特点
- 冗余备份
- 负载均衡
- 线性扩容
- 高性能、高可用
FastDFS架构
Tracker server负载均衡和调度、任务状态跟踪
Storage server文件上传,存储client
Tracker server and Storage server都可以配置集群 每个节点地位相同 没有主从概念
FastDFS 安装
安装FastDFS依赖包
tar -zxvf libfastcommon-master.zipcd libfastcommon-master./make.shsudo ./make.sh install
安装FastDFS
tar -zxvf fastdfs-master.zipcd fastdfs-master./make.shsudo ./make.sh install
配置Tracker Server
sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf- 在当前用户的家目录下创建目录fastdfs/tracker
mkdir -p /home/mark/fastdfs/tracker
sudo vim /etc/fdfs/tracker.confbase_path=/home/mark/fastdfs/tracker
配置Storage Server
sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf- 在当前用户的家目录下创建目录fastdfs/storage
mkdir -p /home/mark/fastdfs/storage
sudo vim /etc/fdfs/storage.confbase_path=/home/mark/fastdfs/storage
store_path0=/home/mark/fastdfs/storage
tracker_server=Tracker Server的IP+端口 默认端口22122
启动Tracker and Storage server
sudo service fdfs_trackerd startsudo service fdfs_storaged start
在ubuntu18上源码编译安装不会自动生成systemd文件,上述方法无法启动服务
可以使用fdfs_trackerd <config file> start的方式启动
测试
sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.confsudo vim /etc/fdfs/client.confbase_path=/home/mark/fasdfs/tracker
tracker_server=Tracker Server的ip+port
- 上传文件测试
mark@ocarina:~$ fdfs_upload_file /etc/fdfs/client.conf /home/mark/图片/hack.jpg
group1/M00/00/00/wKgDDlxFMc2ATakWAACLAixyQHY987.jpg
上传文件成功
安装nginx+fastdfs-nginx-module
nginx服务器在提供静态资源方面性能好,所以将nginx和FastDFS结合
FastDFS负责上传,下载文件的任务交给nginx服务器
tar -zxvf nginx-1.14.2.tar.gzcd nginx-1.14.2/执行
mark@ocarina:~/package/nginx-1.14.2$ sudo ./configure --prefix=/usr/local/nginx/
--add-module=/home/mark/package/fastdfs-nginx-module-master/src
--without-http_rewrite_module
--without-http_gzip_module
sudo makesudo make install将
fastdfs-nginx-module-master解压后的目录中src下的mod_fastdfs.conf复制到/etc/fdfs/mod_fastdfs.conf修改内容:
connect_timeout=10
tracker_server=Tracker Server 的ip地址:22122
url_have_group_name=true
store_path0=/home/mark/fastdfs/storage
将解压缩的
fastdfs-master目录conf目录中的mime.types、http.conf复制到/etc/fdfs/中sudo vim /usr/local/nginx/conf/nginx.conf#在http部分中添加配置信息如下:
server {
listen 8888;
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
启动nginx服务
sudo /usr/local/nginx/sbin/nginx(关闭nginx -s stop)
Python与FastDFS交互
使用pip install fdfs_client-py-master.zip安装fdfs_client-py-master.zip
# 引入Fdfs_client类
from fdfs_client.client import Fdfs_client
# 创建Fdfs_client类对象 参数是配置文件的路径
client = Fdfs_client('/etc/fdfs/client.conf')
# 上传文件
ret = client.upload_by_filename('base_model.py')
# 返回值
print(ret)
-----------------------------------------
getting connection
<fdfs_client.connection.Connection object at 0x7f5ce39307f0>
<fdfs_client.fdfs_protol.Tracker_header object at 0x7f5ce3930d30>
{'Group name': 'group1', 'Remote file_id': 'group1/M00/00/00/wKgDDlxFQ0-ARToDAAACBtn6q1o4007.py', 'Status': 'Upload successed.', 'Local file name': 'base_model.py', 'Uploaded size': '518B', 'Storage IP': '192.168.3.14'}
fdfs_client-py from x import StringIO 及 import basestring 报错
修改为 from io import StringIO basestring在python3中没有 将这一行注释掉
将 isinstance(filename, basestring) 改为 isinstance(filename, str)
用一次FastDFS的更多相关文章
- 【架构设计】分布式文件系统 FastDFS的原理和安装使用
本文地址 分享提纲: 1.概述 2. 原理 3. 安装 4. 使用 5. 参考文档 1. 概述 1.1)[常见文件系统] Google了一下,流行的开源分布式文件系统有很多,介绍如下: -- mo ...
- FASTDFS调研报告(V1.0)
之前的文章,现在放出来,以供参阅. 一.fastdfs简介 FastDFS是一个轻量级的开源分布式文件系统 FastDFS主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡 Fas ...
- 网站文件系统发展&&分布式文件系统fastDFS
网站文件系统发展 1.单机时代的图片服务器架构 初创时期由于时间紧迫,开发人员水平也很有限等原因.所以通常就直接在website文件所在的目录下,建立1个upload子目录,用于保存用户上传的图片文件 ...
- FastDFS 安装及使用
FastDFS 安装及使用 2012-11-17 13:10:31| 分类: Linux|举报|字号 订阅 Google了一下,流行的开源分布式文件系统有很多,介绍如下: mogileF ...
- 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署
少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...
- 分布式文件系统 - FastDFS 简单了解一下
别问我在哪里 也许我早已不是我自己,别问我在哪里,我一直在这里. 突然不知道说些什么了... 初识 FastDFS 记得那是我刚毕业后进入的第一家公司,一个技术小白进入到当时的项目组后,在开发中上传用 ...
- 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试
也不说废话,直接干 上一篇 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署 中安装了 FastDFS 后,并配置启动了 Tracker 和 Storage 服务,已经可以上传文件 ...
- centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置
前言: 以前的项目上传的文件都是保存到本地或者是局域网内的共享文件夹下,由于数据量,服务器的负载均衡(分机的某些图片无法访问的问题处理)等因素的情况下,就想到用fastdfs来文件管理,花了几天时间硬 ...
- FastDFS+Nginx(单点部署)事例
FastDFS是由淘宝的余庆先生所开发,是一个轻量级.高性能的开源分布式文件系统,用纯C语言开发,包括文件存储.文件同步.文件访问(上传.下载).存取负载均衡.在线扩容.相同内容只存储一份等功能,适合 ...
- 在虚拟机中配置FastDFS+Nginx模块
先上部署图 提示一下, ip 192.168.72.138 上面部署了两个group, 分别为 group1和g2. 另外, 同组之内的 port 要保持一致. 一.安装准备 1. #每台机器都添加两 ...
随机推荐
- Java or Python?测试开发工程师如何选择合适的编程语言?
很多测试开发工程师尤其是刚入行的同学对编程语言和技术栈选择问题特别关注,毕竟掌握一门编程语言要花不少时间成本,也直接关系到未来的面试和就业(不同企业/项目对技术栈要求也不一样),根据自身情况做一个相对 ...
- 配置文件语言之yaml
一. Yaml YAML 是一种简洁的非标记语言.YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读. 由于实现简单,解析成本很低,YAML特别适合在脚本语言中使用.列一下现 ...
- 《图解 HTTP 》阅读 —— 第五章
第5章 与HTTP协作的web服务器 一台服务器可以托管多个域名. 在相同的IP地址下,虚拟主机可以寄存多个不同主机名和域名的网站,所以在发送HTTP请求时,必须在Host首部内指定完整的主机名和域名 ...
- 原生js和jquey获取窗口宽高,滚动条,鼠标位置总结
JQuery获取浏览器窗口的可视区域高度和宽度,滚动条高度 alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height( ...
- 【转】nodeJs学习之项目结构
新建的项目结构应该是这样 bin:项目的启动文件,也可以放其他脚本. node_modules:用来存放项目的依赖库. public:用来存放静态文件(css,js,img). routes:路由控制 ...
- ubuntu16.04卸载火狐,Amazon
一.卸载火狐: . dpkg --get-selections |grep firefox .sudo apt-get purge firefox unity-scope-firefoxbookmar ...
- 严重: Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"] java.lang.NullPointer
刚接触servlet类,按照课本的方法使用eclipse新建了一个servlet类. 新建完成后,在web.xml里面进行注册 这时候就会报错了. 五月 07, 2016 11:23:28 上午 or ...
- lintcode-436-最大正方形
436-最大正方形 在一个二维01矩阵中找到全为1的最大正方形 样例 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 返回 4 标签 动态规划 爱彼迎 脸书 思路 使用 ...
- jQuery异步Deferred
原文链接:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html 普通 ...
- SSL 重点SSL会话步骤
SSL.TLS协议 在wiki百科查看下,两者的区别 实现SSL协议的软件 OpenSSL开源软件 SSL会话步骤 1:客户端向服务端索取CA证书,然后验证证书 2:客户端与服务端约定一个通信中使 ...