FastDFS的應用(一)常用架構設計

2021-10-03 19:30:57 字數 3466 閱讀 3299

最近公司想要給內網使用的系統搭建一套靜態資源服務,要求能夠海量儲存資料,並且能夠快速檢索,支援f分布式集群部署,主從備份等特性;並且支援檔案的斷點傳輸,檔案的合併儲存,碎片管理;旭之前沒有接觸太多關於相關的中介軟體;但是公司在選型上已經定了fastdfs,於是旭開始了大量學習和搭建,過程也有了不少的體會,最後搭建出了符合公司業務場景使用的檔案管理服務;最近有時間把過程中的東西整理一下。旭學任何東西都有乙個習慣2w1h what why how。

以上是人們對fastdfs最常用的描述了。我i的理解fastdfs為甚麼會受到大量的使用和推崇,因為它很好的解決了網際網路場景下的幾個痛點問題:

1.分布式檔案系統,支援集群部署,分布式意味著不受限於物理機和虛擬機器的瓶頸的影響,能夠把效能瓶頸分攤到集群節點;把 儲存分散到各個集群節點解決海量儲存的問題;能夠很好很容易很靠譜的進行線性擴容這點非常重要,這樣使用者可以根據使用量快速靠譜的進行按需擴容和收縮;

2.支援主從備份,這意味著不再擔心檔案的丟失和單個節點損壞帶來的損失;

3.對於面向c端的網際網路產品使用者,流量就是上帝,能夠支援海量使用者的訪問,並且速度和穩定性經的起考驗這點非常重要;fastdfs的從設計上考慮到這點,非常注重高可用,負載均衡這一點。(tracker)能夠把流量很均勻的分配到各個節點(storage),乙個節點掛了能夠完全無感知的切換到另外乙個服務。

理論不講太多直接講下我的實踐:在實踐中我使用設計了三套架構方案:

元件說明:名稱

說明centos

7.x(安裝系統)

libfastcommon

fastdfs分離出的一些公用函式包

fastdfs

fastdfs

fastdfs-nginx-module

nginx 1.12.2(centos 7 下yum可以安裝的最新版本)

單機版架構:

服務ip

埠元件備註tracker

172.16.6.1

22122

fastdfs,libfastcommon

/usr/local/tracker

storage

172.16.6.1

23000

fastdfs,libfastcommon,nginx,fastdfs-nginx-module

資料:/home/dfs/storage 安裝:/usr/local/storage

nginx

172.16.6.1

80nginx

/usr/local/nginx

單機版集群:

服務ip

埠元件備註tracker1

172.16.6.1

22122

fastdfs,libfastcommon

/usr/local/tracker

tracker2

172.16.6.1

22123

fastdfs,libfastcommon

/usr/local/tracker

storage1

172.16.6.1

23000

fastdfs,libfastcommon,nginx,fastdfs-nginx-module

資料:/home/dfs/storage1 安裝:/usr/local/storage

storage2

172.16.6.1

23001

fastdfs,libfastcommon,nginx,fastdfs-nginx-module

資料:/home/dfs/storage2 安裝:/usr/local/storage

nginx

172.16.6.1

80nginx

/usr/local/nginx

多服務集群版:

服務ip

埠元件備註tracker1

172.16.6.157

22122

fastdfs,libfastcommon

安裝:/usr/local/src/fdfs/tracker,資料:/home/project/fdfs/tracker,配置:/etc/fdfs/tracker.conf

tracker2

172.16.6.158

22122

fastdfs,libfastcommon

安裝:/usr/local/src/fdfs/tracker,資料:/home/project/fdfs/tracker,配置:/etc/fdfs/tracker.conf

storage1

172.16.6.159

23000

fastdfs,libfastcommon,nginx,fastdfs-nginx-module

資料:/home/project/fdfs/storage 安裝:/usr/local/fdfs/storage,配置:/etc/fdfs/storage.conf

storage2

172.16.6.161

23000

fastdfs,libfastcommon,nginx,fastdfs-nginx-module

資料:/home/project/fdfs/storage 安裝:/usr/local/fdfs/storage,配置:/etc/fdfs/storage.conf

nginx1

172.16.6.159

80nginx,keepalive,fastdfs-nginx-module

/usr/local/nginx,/etc/keepalive/keepalive.conf

nginx2

172.16.6.161

80nginx,keepalive,fastdfs-nginx-module

/usr/local/nginx,/etc/keepalive/keepalive.conf

vip172.16.6.180

80nginx

/usr/local/nginx

上面是針對不同的場景使用的搭建服務,如果只是想先嘗試體驗下fastdfs的話可以使用第一套單機版,來了解下fastdfs

如果要投入到生產使用,如果只是乙個小型的系統單機集群也是可以滿足的。如果是針對大型的網際網路產品可以使用第三套多服務集群,當然這個只是一種思路還有,真正要到大型商用的話這個方案還要做很多的調整比如災備方案,多機房問題等。

下一章將會提供詳細的部署文件。

實戰day04(一) FastDFS的架構

一 課程計畫 1 上傳 a 伺服器fastdfs b 上傳功能實現 2 富文字編輯器的使用kindeditor 類似於 word 的東西 3 商品新增功能完成 實現可擴容 這台伺服器存滿了,可以換一台伺服器 和高可用 這個伺服器掛了,其他的伺服器可以頂上 1 儲存空間可擴充套件。實現可擴容 這台伺服...

我的架構經驗小結(一) 常用的架構模型

經過這幾年的積累,在系統架構方面逐漸積累了一些自己的經驗,到今天有必要對這些經驗作個小結。在我的架構思維中,主要可以歸類為三種架構模型 3 n層架構 框架 外掛程式 架構 地域分布式架構。這是經典的多層架構模型,對於稍微複雜一點或特別複雜的系統,不使用分層架構是很難想象的。下圖是經典的3層架構 如今...

android 應用架構隨筆一(架構搭建)

1 拷貝積累utils以及pagertab類 3 定義baseactivity類 4 改寫mainactivity 5 定義布局檔案 6 定義basefragment類 7 定義fragmentfactory類 8 定義fragmentfactory類 9 定義子頁fragment 10 定義thr...