1. fastDfs簡介
開源項目位址:添加連結描述
用c語言編寫的一款開源分布式檔案系統,為網際網路量身定制,充分考慮備援備份,負載均衡,線性擴容等機制,并注重高可用、高性能等名額。很容易搭建一套高性能的檔案伺服器叢集提供檔案上傳和下載下傳等服務。
1.1 三個角色:
追蹤器:Tracker,存儲節點:Storage,連接配接用戶端:Client
Storage節點會主動連接配接Tracker,報告存儲節點剩餘空間,和檔案同步狀态等資訊。當有client用戶端操作時,會主動連接配接Tracker,擷取存儲節點的ip和端口,使用網絡連接配接來上傳和下載下傳檔案。
1.2 分布式擴充
分布式整體布局圖:
1.2.1 tracker叢集
tracker server之間是互相平等關系,同時提供服務,用戶端請求tracker server采用輪詢的方式,如果請求的tracker無法服務,則換另一台服務。
1.2.2 stroage叢集
storage叢集采用了分組的存儲方式,由一個或多個組構成,如group1,group2。
叢集存儲總容量為所有組存儲總容量之和。一個組由一台或多台存儲伺服器組成,組内的存儲storage server是平等關系,組内多台為備份作用,該組的容量是組内最小存儲容量(木桶效應)。不同組之間是不會通信的,同組内的storage server之間會互相連接配接進行檔案同步,進而保證同組内每個storage上的檔案完全一緻。
1.3 擴容
橫向擴容:
擴充組,擴充了整個叢集的存儲容量
縱向擴容:
資料備份,擴充組記憶體儲伺服器;所有節點的組名是相同的。
2.Fastdfs安裝并配置nginx
參看部署:https://github.com/happyfish100/fastdfs/wiki
3.Spring boot中使用fastdfs
3.1 引入依賴
<!-- taobao fastdfs依賴 -->
<dependency>
<groupId>com.github.tobato</groupId>
<artifactId>fastdfs-client</artifactId>
<version>1.26.5</version>
</dependency>
3.2 配置
# 分布式檔案系統FDFS配置
fdfs:
soTimeout: 1500 #socket連接配接逾時時長
connectTimeout: 600 #連接配接tracker伺服器逾時時長
thumbImage: #縮略圖生成參數,可選
width: 150
height: 150
trackerList: #TrackerList參數,支援多個,我這裡隻有一個,如果有多個在下方加- x.x.x.x:port
- 192.168.31.38:22122
3.3 測試示例:
spring-boot-fastdfs