當前位置:
首頁 > 最新 > FastDFS集群搭建與實戰

FastDFS集群搭建與實戰

FastDFS是一個輕量級的分散式文件系統,在實際生產環境往往以集群的形式部署,保證了服務的高可用。本文重點闡述FastDFS集群的搭建和項目實戰。

工作流程

上傳流程圖

下載流程圖

底層原理

FastDFS不會對文件進行分塊存儲,直接保存到Storage服務上,這也是不適合超大文件存儲的原因,官方建議(4K~500M),優點:簡介高效。

FastDFS採用分組存儲方式,同一組可以包括多個Storage Server,其中一個Storage接收到上傳的文件,會同步文件到同組其他Storage Server。

一個組的存儲容量為組內Storage Server容量最小的那個。優點:組內服務壓力較大時可以增加Storage Server來緩解壓力;系統容量不足時增加組來獲得更大的存儲空間。

文件上傳成功返回的文件ID由組名,磁碟目錄和文件名構成。

集群伺服器規劃

系統環境:centos 7.3

跟蹤伺服器1(Tracker):192.168.72.135

跟蹤伺服器2(Tracker):192.168.72.136

存儲伺服器1(Storage):192.168.72.135---(group1)

存儲伺服器2(Storage):192.168.72.136---(group1)

存儲伺服器3(Storage):192.168.72.137---(group2)

由於電腦性能有限,但要模擬多group,只虛擬了3個節點,對group1做了兩個節點來備份數據,group2為單節點,生產環境要每個組至少兩個節點來保證高可用。

安裝包

fastdfs-5.11.tar.gz

fastdfs-nginx-module-master.zip

libfastcommon-1.0.36.tar.gz

nginx-1.8.1.tar.gz

集群部署

Tracker和Storage部署

1:節點1,節2,節點3分別安裝FastDFS,具體安裝參考上篇文章:FastDFS極速入門

2:分別關閉三個節點的防火牆,或者配置防火牆開放埠,關閉防火牆: systemctl stop firewalld

3:修改節點1的tracker.conf配置文件:

>mkdir /data/fdfs-tracker

>vi /etc/fdfs/tracker.conf

把base_path修改為:base_path=/data/fdfs-tracker

4:修改節點2的tracker.conf配置文件:同上

5:修改節點1的storage.conf配置文件:

> mkdir/data/fdfs-storage/base

> mkdir /data/fdfs-storage/storage0

>vi /etc/fdfs/storage.conf

把group_name修改為:group_name=group1

把base_path修改為:base_path=/data/fdfs-storage/base

把store_path0修改為:store_path0=/data/fdfs-storage/storage0

把tracker_server修改兩個tracker節點地址:

tracker_server=192.168.72.135:22122

tracker_server=192.168.72.136:22122

6:修改節點2的storage.conf配置文件,同步驟5。

7:修改節點3的storage.conf配置文件,

把group_name修改為:group_name=group2

其他同步驟5。

8:節點1,節點2上啟動tracker服務

>service fdfs_trackerd start

9:節點1,節點2和節點3上啟動storage服務

>service fdfs_storaged start

Tracker和Storage安裝完成,可以使用FastDFS自帶的客戶端進行上傳下載測試,具體操作方法,參考上篇

fastdfs-nginx-module和nginx安裝

所有節點安裝fastdfs-nginx-module模塊

fastdfs-nginx-module模塊作用:

文件上傳到組內一個storage存儲後,storage服務會吧文件同步到組內其他storage,這就存在時間延時問題,如果此時客戶端通過nginx訪問到還未同步完成的組內其他storage會導致文件不存在無法訪問錯誤,fastdfs-nginx-module可以解決該問題的發生,通過重定向到源storage節點來獲取文件。

root目錄解壓fastdfs-nginx-module:

>unzip fastdfs-nginx-module.zip

安裝依賴包:

>yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel

安裝nginx

>tar -zxvf nginx-1.8.1.tar.gz

>cd nginx-1.8.1

>./configure --prefix=/opt/nginx --add-module=/roo/fastdfs-nginx-module/src

>make && make install

複製fastdfs-nginx-module中配置文件到/etc/fdfs目錄,並修改配置文件:

>cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

>vi /etc/fdfs/mod_fastdfs.conf

tracker_server修改為:

tracker_server=192.168.72.135:22122

tracker_server=192.168.72.136:22122

group_name修改為:

節點1:group_name=group1

節點2:group_name=group1

節點3:group_name=group2

url_have_group_name修改為:

url_have_group_name = true

複製FastDFS部分配置文件到/etc/fdfs目錄:

> cd /root/fastdfs-5.1/conf

>cp http.conf mime.types /etc/fdfs/

修改nginx.conf配置文件:

啟動nginx:

>./nginx -c conf/nginx.conf

到此FastDFS集群已經搭建完成,文件上傳後可以通過任意storage節點上的nginx來獲得文件

實戰

FastDFS提供了C,PHP和java客戶端,選用java客戶端來進行實戰。

創建maven工程,pom.xml文件添加依賴:

添加配置文件

src/main/resoureces目錄下添加fdfs_clent.conf配置文件,內容如下:

創建FdfsClient類

靜態代碼塊:

文件上傳

文件下載

獲得文件屬性

文件刪除


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 碼農code之路 的精彩文章:

TAG:碼農code之路 |