免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

第2-3-1章 文件存儲服務(wù)系統(tǒng)-nginx/fastDFS/minio/阿里云oss/七牛云oss

目錄

  • 文件存儲服務(wù)
    • 1. 需求背景
    • 2. 核心功能
    • 3. 存儲策略
      • 3.1 本地存儲
      • 3.2 FastDFS存儲
      • 3.3 云存儲
      • 3.4 minio
    • 4. 技術(shù)設(shè)計(jì)
文件存儲服務(wù)全套代碼及資料全部完整提供,點(diǎn)此處下載
1. 需求背景文件的上傳、下載功能是軟件系統(tǒng)常見的功能,包括上傳文件、下載文件、查看文件等 。例如:電商系統(tǒng)中需要上傳商品的圖片、廣告視頻,辦公系統(tǒng)中上傳附件,社交類系統(tǒng)中上傳用戶頭像等等 。
文件上傳下載大致流程為:
第2-3-1章 文件存儲服務(wù)系統(tǒng)-nginx/fastDFS/minio/阿里云oss/七牛云oss

文章插圖
這種方式開發(fā)起來簡單、直接,但是有一些問題:
  • 重復(fù)開發(fā): 比如對接某個OSS(Object Storage Service,簡稱OSS)服務(wù)商,每個應(yīng)用都需要對接該服務(wù)商,重復(fù)工作
  • 擴(kuò)展性差: 當(dāng)需要切換服務(wù)商時,所有涉及到的應(yīng)用都需要修改、測試、上線
基于以上原因,微服務(wù)體系下的應(yīng)用系統(tǒng)一般都有一個文件服務(wù),用于統(tǒng)一管理文件上傳下載等功能,大型電商系統(tǒng)甚至有獨(dú)立的文件、圖片、視頻服務(wù) 。此時架構(gòu)體系變?yōu)椋?br />
第2-3-1章 文件存儲服務(wù)系統(tǒng)-nginx/fastDFS/minio/阿里云oss/七牛云oss

文章插圖
這種方式提供一個獨(dú)立的文件微服務(wù),該微服務(wù)向應(yīng)用系統(tǒng)提供統(tǒng)一的上傳、下載、查看接口,應(yīng)用系統(tǒng)調(diào)用方式相同,并且屏蔽了底層對外調(diào)用OSS服務(wù)的接口,即使以后遷移OSS服務(wù)商,應(yīng)用層面的系統(tǒng)也不需要變動 。
這種模式也有一個小問題,比如我們調(diào)用了阿里云的OSS服務(wù),如果所有的下載、查看功能都調(diào)用文件服務(wù),那么文件服務(wù)的網(wǎng)絡(luò)流量將會有非常大的壓力 。所以常用的做法是這樣的:
第2-3-1章 文件存儲服務(wù)系統(tǒng)-nginx/fastDFS/minio/阿里云oss/七牛云oss

文章插圖
2. 核心功能文件存儲服務(wù)的核心功能是:上傳和下載 。除了這兩個核心功能,還具有:
  • 可用性:作為基礎(chǔ)性服務(wù),通過集群化部署實(shí)現(xiàn)高可用
  • 配置性:結(jié)合nacos配置中心,可動態(tài)配置上傳下載的方式等配置
  • 擴(kuò)展性:采用策略設(shè)計(jì)模式能方便的進(jìn)行擴(kuò)展,如添加新的OSS服務(wù)商等
本系統(tǒng)的文件服務(wù)提供兩種類型的服務(wù):
? 1、面對應(yīng)用系統(tǒng)的通用附件服務(wù)
?提供統(tǒng)一的上傳接口,屏蔽底層的存儲方案(本地存儲、FastDFS、MinIo、阿里云存儲、七牛云存儲等),可獨(dú)立運(yùn)行服務(wù)
? 2、面對用戶的網(wǎng)盤服務(wù)
?有文件夾和文件的概念,支持大文件分片上傳、合并
? 3、面對大屏展示的數(shù)據(jù)統(tǒng)計(jì)服務(wù)
?有云盤首頁數(shù)據(jù)概覽,按照類型/時間等維度統(tǒng)計(jì)各種類型文件的大小和數(shù)量等
3. 存儲策略3.1 本地存儲本地存儲,即將上傳的文件存儲在本地磁盤,并通過本地提供的Nginx服務(wù)來對外提供文件的下載和查看等功能 。
3.2 FastDFS存儲【第2-3-1章 文件存儲服務(wù)系統(tǒng)-nginx/fastDFS/minio/阿里云oss/七牛云oss】FastDFS存儲,即將上傳的文件存儲在FastDFS分布式文件存儲系統(tǒng)中,并通過FastDFS結(jié)合Nginx提供的服務(wù)來對外提供文件的下載和查看等功能 。
3.3 云存儲云存儲,即將上傳的文件存儲在第三方云平臺上,例如阿里云OSS、七牛云OSS服務(wù)等,并通過這些第三方提供的OSS服務(wù)來對外提供文件的下載和查看等功能 。
3.4 minioMinIO 是一個基于Apache License v2.0開源協(xié)議的對象存儲服務(wù) 。它兼容亞馬遜S3云存儲服務(wù)接口,非常適合于存儲大容量非結(jié)構(gòu)化的數(shù)據(jù),例如圖片、視頻、日志文件、備份數(shù)據(jù)和容器/虛擬機(jī)鏡像等,而一個對象文件可以是任意大小,從幾kb到最大5T不等 。

經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀