FastDFS

简介:

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

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

搭建:

所需要的工具,fastdfs | fastdfs-nginx-module | libfastcommon | nginx | fastdfs-client-java

安装libfastcommon工具,./make.sh | ./make.sh install

建立软链接

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so

ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

 

安装fastdfs工具,./make.sh | ./make.sh install

成功之后,cd /etc/fdfs

把三份实例文件复制一份,去掉sample

cp client.conf.sample client.conf

cp storage.conf.sample storage.conf

cp tracker.conf.sample tracker.conf

 

安装tracker

创建自定义目录,用来保存tracker的data和log 【 /home/zhutong/data/tracker 】

配置tracker

cd /etc/fdfs

vi tracker.conf 修改四处

1.disabled=false #默认开启

2.port=22122 #默认端口号

3.base_path=/usr/muyou/dev/fastdfs/fastdfs_tracker #自定义tracker目录

4.http.server_port=6666 #默认端口是8080

启动 tracker

service fdfs_trackerd start

给 tracker 加入开机启动

chmod +x /etc/rc.d/rc.local

修改rc.local配置

vi /etc/rc.d/rc.local

在配置文件最后一行加上

service fdfs_trackerd start

查看 tracker 端口监听情况

netstat -unltp|grep fdfs

 

安装 storage

创建storage数据文件和日志目录【 /home/zhutong/data/storage 】

创建storage_data目录用来存储数据【 /home/zhutong/data/storage_data 】

修改 storage.conf 配置文件 vi /etc/fdfs/storage.conf

1.disabled=false 

2.group_name=group1 #组名,根据实际情况修改 

3.port=23000  #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致 

4.base_path=/usr/muyou/dev/fastdfs/fastdfs_storage  #设置storage数据文件和日志目录 

5.store_path_count=1 #存储路径个数,需要和store_path个数匹配 

6.store_path0=/usr/muyou/dev/fastdfs/fastdfs_storage_data #实际文件存储路径 

7.tracker_server=192.168.150.132:22122 #我CentOS7的ip地址 

8.http.server_port=8888 #设置 http 端口号

修改配置文件后,创建软链接 ln -s /usr/bin/fdfs_storaged /usr/local/bin

启动 storage

service fdfs_storaged start

设置开机启动 vim /etc/rc.d/rc.local

在配置文件最后一行加上

service fdfs_storaged start

查看服务是否启动

netstat -unltp | grep fdfs

最后确定一下 storage 是否注册到 tracker 上去

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

 

修改客户端配置文件

vi /etc/fdfs/client.conf

 

base_path=/usr/muyou/dev/fastdfs/fastdfs_tracker #tracker服务器文件路径

tracker_server=192.168.150.132:22122 #tracker服务器IP地址和端口号

http.tracker_server_port=6666 # tracker 服务器的 http端口号,必须和tracker的设置对应

 

测试上传图片

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/测试1.png #你上传的图片路径(linux上的)

成功之后会返回图片的路径

group1/M00/00/00/wKiWhFrdeCeAC_vCAABqgowGIFg399.png

 

FastDFS的nginx模块安装

 

FastDFS安装Nginx的模块,fastdfs-nginx-module报错:fdfs_define.h:15:27: 致命错误:common_define.h:没有那个文件或目录

vi fastdfs-nginx-module-1.20/src/config

 

修改配置:ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

 

<<storage与nginx>>

进入nginx安装目录,添加 fastdfs-nginx-module

./configure --prefix=/usr/local/nginx --add-module=/home/zhutong/down/fastdfs/fastdfs-nginx-module-master/src

安装 nginx

make

make install

修改 nginx.conf 配置文件

location /group1/M00 {

            root /usr/muyou/dev/fastdfs/fastdfs_storage_data/data;

            ngx_fastdfs_module;

        }

进入FastDFS安装目录,cp http.conf /etc/fdfs/ cp mime.types /etc/fdfs/

进入fastdfs-nginx-module安装目录,cp mod_fastdfs.conf /etc/fdfs/

修改 mod_fastdfs.conf 配置文件

vi /etc/fdfs/mod_fastdfs.conf

 

base_path=/usr/muyou/dev/fastdfs/fastdfs_storage  #保存日志目录

tracker_server=192.168.150.132:22122 #tracker服务器的IP地址以及端口号

 storage_server_port=23000 #storage服务器的端口号

 url_have_group_name = true #文件 url 中是否有 group 名

 store_path0=/usr/muyou/dev/fastdfs/fastdfs_storage_data   #存储路径

 group_count = 3 #设置组的个数,事实上这次只使用了group1

 

在配置文件最后加上

[group1]

group_name=group1

storage_server_port=23000

store_path_count=1

store_path0=/usr/muyou/dev/fastdfs/fastdfs_storage_data

store_path1=/usr/muyou/dev/fastdfs/fastdfs_storage_data

 

# group settings for group #2

# since v1.14

# when support multi-group, uncomment following section as neccessary

[group2]

group_name=group2

storage_server_port=23000

store_path_count=1

store_path0=/usr/muyou/dev/fastdfs/fastdfs_storage_data

 

[group3]

group_name=group3

storage_server_port=23000

store_path_count=1

store_path0=/usr/muyou/dev/fastdfs/fastdfs_storage_data

 

创建MOO于storage存储目录软链接

ln -s /home/zhutong/data/storage_data/data/ /home/zhutong/data/storage_data/data/M00

 

<<tracker与nginx>>

再解压一份 nginx ,进入nginx目录,./configure --prefix=/usr/local/nginx2 --add-module=/usr/muyou/dev/nginx/fastdfs-nginx-module-master/src

编译安装nginx,使用命令 make,make install

vi /usr/local/nginx2/conf/nginx.conf

  upstream fdfs_group1 {

        server 127.0.0.1:9999;

}

    server {

        listen       9989;

        server_name  localhost;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

        location /group1/M00 {

            proxy_pass http://fdfs_group1;

        }

启动 nginx

 

测试访问

http://192.168.2.160:9999/group1/M00/00/00/wKgCoF1WTZOAcQpUAAA3bxlBiOQ328.jpg

FastDFS分布式文件系统搭建成功!

 

Java上传下载服务整合FastDFS分布式文件系统

添加 maven 依赖

<!-- fastdfs -->

<dependency>

<groupId>org.csource</groupId>

<artifactId>fastdfs-client-java</artifactId>

<version>1.27-SNAPSHOT</version>

</dependency>

<dependency>        

<groupId>commons-io</groupId>        

<artifactId>commons-io</artifactId>        

<version>2.4</version>    

</dependency>

Maven 的中央仓库没有fastdfs-client-java.jar依赖包,需要自己去github上下载源码,安装到本地 maven 仓库

下载地址:https://github.com/happyfish100/fastdfs-client-java

进入解压目录:mvn clean install,成功吧fastdfs-client-java打包到maven仓库中

在 resources 目录下添加配置文件 fdfs_client.conf

#FastDFS配置begin-----------

connect_timeout = 60

network_timeout = 60

charset = UTF-8

http.tracker_http_port = 6666

http.anti_steal_token = no

http.secret_key = 123456

tracker_server = 192.168.2.160:22122

#FastDFS配置end-----------

 

FastDFS分布式文件系统原理

功能:文件存储,文件同步,文件访问等。

FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值