FastDFS的应用(一)常用架构设计

FastDFS的应用

第一章FastDFS的介绍和常用的架构

最近公司想要给内网使用的系统搭建一套静态资源服务,要求能够海量存储数据,并且能够快速检索,支持f分布式集群部署,主从备份等特性;并且支持文件的断点传输,文件的合并存储,碎片管理;旭之前没有接触太多关于相关的中间件;但是公司在选型上已经定了FastDFS,于是旭开始了大量学习和搭建,过程也有了不少的体会,最后搭建出了符合公司业务场景使用的文件管理服务;最近有时间把过程中的东西整理一下。旭学任何东西都有一个习惯2w1h what why how。

什么是FastDFS

基于C语言开发的一项开源轻量级分布式文件系统,基于文件进行管理,能够实现:文件存储,文件同步,文件访问等功能性服务;解决了大容量存储和负载均衡的问题;FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
关键字:
1.tracker:跟踪器 用来解决调度工作,起到负载均衡和分流的作用
2.storage:存储节点,采用了分卷(或分组)的组织方式
3. client:fastDFS客户端(我觉得这个不太好用,我是用nginx和java服务来替代的)

为什么使用FastDFS

以上是人们对FastDFS最常用的描述了。我i的理解fastDFS为甚么会受到大量的使用和推崇,因为它很好的解决了互联网场景下的几个痛点问题:
1.分布式文件系统,支持集群部署,分布式意味着不受限于物理机和虚拟机的瓶颈的影响,能够把性能瓶颈分摊到集群节点;把 存储分散到各个集群节点解决海量存储的问题;能够很好很容易很靠谱的进行线性扩容这点非常重要,这样使用者可以根据使用量快速靠谱的进行按需扩容和收缩;
2.支持主从备份,这意味着不再担心文件的丢失和单个节点损坏带来的损失;
3.对于面向C端的互联网产品用户,流量就是上帝,能够支持海量用户的访问,并且速度和稳定性经的起考验这点非常重要;fastDFS的从设计上考虑到这点,非常注重高可用,负载均衡这一点。(tracker)能够把流量很均匀的分配到各个节点(storage),一个节点挂了能够完全无感知的切换到另外一个服务。

FastDFS 常用的架构

理论不讲太多直接讲下我的实践:在实践中我使用设计了三套架构方案:

组件说明:

名称说明
centos7.x(安装系统)
libfastcommonFastDFS分离出的一些公用函数包
FastDFSFastDFS
fastdfs-nginx-modulenginx 1.12.2(CentOS 7 下YUM可以安装的最新版本)

单机版架构:
在这里插入图片描述

服务ip端口组件备注
tracker172.16.6.122122FastDFS,libfastcommon/usr/local/tracker
storage172.16.6.123000FastDFS,libfastcommon,nginx,fastdfs-nginx-module数据:/home/dfs/storage 安装:/usr/local/storage
nginx172.16.6.180nginx/usr/local/nginx

单机版集群:
在这里插入图片描述

服务ip端口组件备注
tracker1172.16.6.122122FastDFS,libfastcommon/usr/local/tracker
tracker2172.16.6.122123FastDFS,libfastcommon/usr/local/tracker
storage1172.16.6.123000FastDFS,libfastcommon,nginx,fastdfs-nginx-module数据:/home/dfs/storage1 安装:/usr/local/storage
storage2172.16.6.123001FastDFS,libfastcommon,nginx,fastdfs-nginx-module数据:/home/dfs/storage2 安装:/usr/local/storage
nginx172.16.6.180nginx/usr/local/nginx

多服务集群版:
在这里插入图片描述

服务ip端口组件备注
tracker1172.16.6.15722122FastDFS,libfastcommon安装:/usr/local/src/fdfs/tracker,数据:/home/project/fdfs/tracker,配置:/etc/fdfs/tracker.conf
tracker2172.16.6.15822122FastDFS,libfastcommon安装:/usr/local/src/fdfs/tracker,数据:/home/project/fdfs/tracker,配置:/etc/fdfs/tracker.conf
storage1172.16.6.15923000FastDFS,libfastcommon,nginx,fastdfs-nginx-module数据:/home/project/fdfs/storage 安装:/usr/local/fdfs/storage,配置:/etc/fdfs/storage.conf
storage2172.16.6.16123000FastDFS,libfastcommon,nginx,fastdfs-nginx-module数据:/home/project/fdfs/storage 安装:/usr/local/fdfs/storage,配置:/etc/fdfs/storage.conf
nginx1172.16.6.15980nginx,keepalive,fastdfs-nginx-module/usr/local/nginx,/etc/keepalive/keepalive.conf
nginx2172.16.6.16180nginx,keepalive,fastdfs-nginx-module/usr/local/nginx,/etc/keepalive/keepalive.conf
VIP172.16.6.18080nginx/usr/local/nginx

总结:

上面是针对不同的场景使用的搭建服务,如果只是想先尝试体验下fastDFS的话可以使用第一套单机版,来了解下fastDFS
如果要投入到生产使用,如果只是一个小型的系统单机集群也是可以满足的。如果是针对大型的互联网产品可以使用第三套多服务集群,当然这个只是一种思路还有,真正要到大型商用的话这个方案还要做很多的调整比如灾备方案,多机房问题等。
下一章将会提供详细的部署文档。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值