<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ASP.NET Core WebApi分布式文件系統(tǒng)FastDFS實(shí)戰(zhàn)演練

          共 3777字,需瀏覽 8分鐘

           ·

          2021-09-30 19:03

          一、分布式文件系統(tǒng)簡(jiǎn)介

          1、分布式文件系統(tǒng)簡(jiǎn)介

          分布式文件系統(tǒng)(DFS,Distributed File System)使用戶更加容易訪問(wèn)和管理物理上跨網(wǎng)絡(luò)分布的文件。DFS為文件系統(tǒng)提供了單個(gè)訪問(wèn)點(diǎn)和一個(gè)邏輯樹結(jié)構(gòu),通過(guò)DFS,用戶在訪問(wèn)文件時(shí)不需要知道它們的實(shí)際物理位置,即分布在多個(gè)服務(wù)器上的文件在用戶面前就如同在網(wǎng)絡(luò)的同一個(gè)位置。

          分布式文件系統(tǒng)(Distributed File System)是指文件系統(tǒng)管理的物理存儲(chǔ)資源不一定直接連接在本地節(jié)點(diǎn)上,而是通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)與節(jié)點(diǎn)相連。

          通俗來(lái)講:傳統(tǒng)文件系統(tǒng)管理的文件就存儲(chǔ)在本機(jī)。
          分布式文件系統(tǒng)管理的文件存儲(chǔ)在很多機(jī)器,這些機(jī)器通過(guò)網(wǎng)絡(luò)連接,要被統(tǒng)一管理。
          無(wú)論是上傳或者訪問(wèn)文件,都需要通過(guò)管理中心來(lái)訪問(wèn)。

          2、分布式文件又可以分為兩種

          一是通用分布式文件系統(tǒng)

          將windows或linux多臺(tái)機(jī)器進(jìn)分布式架構(gòu)便是一個(gè)通用分布式文件系統(tǒng)了,因?yàn)橥ㄓ茫褂闷饋?lái)很方便,但性能就差點(diǎn)。應(yīng)用端可以mount(掛載)使用。典型代表:lustre、MooseFS.

          另外一個(gè)便是專用分布式文件系統(tǒng)了,基本都是基于GFS的思想,,文件上傳后不能修改。不能mount(掛載)使用,需要使用專有API對(duì)文件進(jìn)行訪問(wèn),也可稱作分布式文件存儲(chǔ)服務(wù)。典型代表:GFS、FastDFS、HDFS、TFS。

          二、實(shí)戰(zhàn)案例項(xiàng)目截圖

          關(guān)于FastDFS與ASP.NET Core WebApi相結(jié)合的詳細(xì)的代碼已經(jīng)最后一章節(jié)提供給大家進(jìn)行下載了。

          1、項(xiàng)目解決方案結(jié)構(gòu)圖



          2、FastDFS.xml配置文件



          3、 文件上傳(支持批量文件上傳)



          4、下載文件



          5、顯示文件(如果是文件類型為:圖片和PDF文件的話,則可以直接以流的方式在瀏覽器中顯示。)



          三、FastDFS分布式文件系統(tǒng)介紹

          1、什么是FastDFS

          ?  FastDFS是一款類Google FS的開(kāi)源分布式文件系統(tǒng),它用純C語(yǔ)言實(shí)現(xiàn),支持Linux、FreeBSD、AIX等UNIX系統(tǒng)。

          ?  FastDFS是一個(gè)開(kāi)源的輕量級(jí)分布式文件系統(tǒng),它對(duì)文件進(jìn)行管理,功能包括:文件存儲(chǔ)、文件同步、文件訪問(wèn)(文件上傳、文件下載)等,解決了大容量存儲(chǔ)和負(fù)載均衡的問(wèn)題。特別適合以文件為載體的在線服務(wù),如相冊(cè)網(wǎng)站、視頻網(wǎng)站等等。

          ?  單機(jī)中使用FastDFS搭建文件系統(tǒng)并上傳下載的過(guò)程。

          ?  FastDFS 是一個(gè)開(kāi)源的高性能分布式文件系統(tǒng)(DFS)。它的主要功能包括:文件存儲(chǔ),文件同步和文件訪問(wèn),以及高容量和負(fù)載平衡。

          2、FastDFS分布式文件系統(tǒng)特點(diǎn)

          FastDFS是由淘寶的余慶先生所開(kāi)發(fā)的一個(gè)輕量級(jí)、高性能的開(kāi)源分布式文件系統(tǒng)。用純C語(yǔ)言開(kāi)發(fā),功能豐富:

          FastDFS 是一個(gè)開(kāi)源的高性能分布式文件系統(tǒng)(DFS)。它的主要功能包括:文件存儲(chǔ),文件同步和文件訪問(wèn),以及高容量和負(fù)載平衡。主要解決了海量數(shù)據(jù)存儲(chǔ)問(wèn)題,特別適合以中小文件(建議范圍:4KB < file_size <500MB)為載體的在線服務(wù)。

          ?  文件存儲(chǔ)

          ?  文件同步

          ?  文件訪問(wèn)(上傳、下載)

          ?  存取負(fù)載均衡

          ?  在線擴(kuò)容

          適合有大容量存儲(chǔ)需求的應(yīng)用或系統(tǒng)。同類的分布式文件系統(tǒng)有谷歌的GFS、HDFS(Hadoop)、TFS(淘寶)等。

          參考文章:

          分布式文件系統(tǒng) 
          https://www.jianshu.com/p/ec6af5bcad7a

          四、FastDFS分布式文件系統(tǒng)原理







          跟蹤服務(wù)器(Tracker Server)、存儲(chǔ)服務(wù)器(Storage Server)、客戶端(Client)。

          ?  Tracker Server: 跟蹤服務(wù)器,主要做調(diào)度工作,啟動(dòng)均衡的作用;負(fù)責(zé)管理所有的storage server和group,每個(gè)storage在啟動(dòng)后會(huì)連接?  Tracker,告知自己所屬group信息,并保持周期性心跳。

          ?  Storage Server:存儲(chǔ)服務(wù)器,主要提供容量和備份服務(wù);以group為單位,每個(gè)group可以有多臺(tái)storage server,數(shù)據(jù)互為備份。

          ?  Client: 客戶端,上傳下載數(shù)據(jù)的服務(wù)器,也就是我們項(xiàng)目部署所在的服務(wù)器。

          1.通過(guò)組名Tracker能夠很快的定位到客戶端需要訪問(wèn)的存儲(chǔ)服務(wù)器組是group1,并選擇合適的存儲(chǔ)服務(wù)器提供客戶端訪問(wèn)。

          2.存儲(chǔ)Storage服務(wù)器根據(jù)“文件存儲(chǔ)虛擬磁盤路徑”和“數(shù)據(jù)文件兩級(jí)目錄”可以很快定位到文件所在目錄,并根據(jù)文件名找到客戶端需要訪問(wèn)的文件。  

          參考文章:
          FastDFS分布式文件系統(tǒng)(一) - 簡(jiǎn)書
          https://www.jianshu.com/p/0ad90cb8fa6f

          五、FastDFS分布式文件在ASP.NET Core中的運(yùn)用

          1、Docker構(gòu)建FastDFS分布式文件系統(tǒng)

          一般實(shí)際工作中FastDFS都是由我們的運(yùn)維DB工程師幫我們?nèi)ゴ罱ōh(huán)境,但是在剛開(kāi)始的學(xué)習(xí)過(guò)程中,可能需要我們自行去搭建環(huán)境哦,這里為了方便起見(jiàn),阿笨強(qiáng)烈推薦大家采用Docker容器化的方式進(jìn)行搭建環(huán)境。具體的環(huán)境搭建過(guò)程請(qǐng)自行研究和攻克哦。

          參考文章:

          docker 安裝 FastDFS

          https://www.cnblogs.com/provence666/p/10987156.html

          詳細(xì)關(guān)于FastDFS的按照文章看下面文章就足夠了。

          FastDFS 分布式文件系統(tǒng)的安裝與使用,看這一篇就夠了!!!

          2.、ASP.NET Core中使用分布式文件系統(tǒng)FastDFS進(jìn)行文件存儲(chǔ)和讀取

          源代碼示例下載

          非常感謝對(duì)【跟著阿笨一起玩NET】的支持,有問(wèn)題微信公眾號(hào)回復(fù)wx關(guān)鍵字,加阿笨的個(gè)人微信號(hào)。

          《ASP.NET Core WebApi分布式文件系統(tǒng)FastDFS實(shí)戰(zhàn)演練》源碼下載(注意下載地址區(qū)分大小寫哦)

          鏈接:https://pan.baidu.com/s/15t7kWqq7UZVsR3AV-Wv_tA 提
          取碼:7zcf


          六、ASP.Net Core解除文件上傳大小限制

          1、如果是部署在IIS上,則需要解決IIS服務(wù)器文件上傳大小限制。


          web.config文件內(nèi)容如下:

          <?xml version="1.0" encoding="utf-8"?>

          <configuration>

            <location path="." inheritInChildApplications="false">

              <system.webServer>

                <handlers>

                  <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />

                </handlers>

                <aspNetCore processPath="dotnet" arguments=".\EIP.Core.Api.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />

                <security>

                  <requestFiltering>

                      <requestLimits maxAllowedContentLength="1073741822" /><!-- 1GB-->

                  </requestFiltering>

                </security>

              </system.webServer>

            </location>

          </configuration>


          2、如果是部署在Linux上,則需要解決Kestrel服務(wù)器文件上傳大小限制。

          Program.cs中修改如下:


          Startup.cs文件修改如下:





          騰訊課堂



          網(wǎng)易云課堂



          不信的話,掃一掃



          瀏覽 25
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色日逼片 | 成人电影一区 | 人人爽人人奭人人片AV | 欧美操逼视频在线免费观看 | 精品人妻无码一区二区出白浆潮喷 |