久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Docker來搭建分布式文件系統(tǒng)FastDFS

      對于文件存儲來說,一般情況下簡單的處理就是在Django配置文件中配置存儲目錄,按照規(guī)則對文件進行上傳或者下載。

      實際上,當文件較少的時候,Django是可以應付的過來的。但當文件以海量形式出現(xiàn)的時候,Django就并不是那么好用了,于是FastDFS應運而出。

       FastDFS是一個開源的分布式文件系統(tǒng),它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件為載體的在線服務,如相冊網(wǎng)站、視頻網(wǎng)站等等??梢哉f它就是為互聯(lián)網(wǎng)而生,為大數(shù)據(jù)而生的。

          FastDFS服務端有兩個角色:跟蹤器(tracker)和存儲節(jié)點(storage)。跟蹤器主要做調度工作,在訪問上起負載均衡的作用。 存儲節(jié)點存儲文件,完成文件管理的所有功能:存儲、同步和提供存取接口,F(xiàn)astDFS同時對文件的meta data進行管理。跟蹤器和存儲節(jié)點都可以由多臺服務器構成。跟蹤器和存儲節(jié)點中的服務器均可以隨時增加或下線而不會影響線上服務。其中跟蹤器中的所有服務器都是對等的,可以根據(jù)服務器的壓力情況隨時增加或減少。

      為什么要用FastDfs:

          1 解決海量存儲,同時存儲容量擴展方便。
          2 解決文件內容重復,如果用戶上傳的文件重復(文件指紋一樣),那么系統(tǒng)只有存儲一份數(shù)據(jù),值得一提的是,這項技術目前被廣泛應用在網(wǎng)盤中。
          3 結合Nginx提高網(wǎng)站讀取圖片的效率。

      Docker來搭建分布式文件系統(tǒng)FastDFS

       

      1,首先下載fastdfs鏡像

      docker pull delron/fastdfs

      2,使用docker鏡像構建tracker容器(跟蹤服務器,起到調度的作用),這里tracker服務將會自動映射到宿主機上

      注意:docker 的 -v 參數(shù),可以自動掛載宿主機的文件件到容器中去,這樣宿主和容器就可以進行無障礙的文件共享,我們通過-v參數(shù),把宿主機的root目錄自動掛載到docker容器中的/var/root目錄中去

      docker run -d --network=host --name tracker -v /root:/var/root delron/fastdfs tracker

      3,docker鏡像構建storage容器(存儲服務器,提供容量和備份服務),這里storage容器需要依賴tracker服務,傳入你的tracker服務的ip地址,端口默認是22122,ip地址也就是你宿主機的ip

      docker run -d --network=host --name storage -e TRACKER_SERVER=192.168.99.100:22122 -v /root:/var/root -e GROUP_NAME=group1 delron/fastdfs storage

      注意:上面ip為docker的ip

      此時,命令行輸入 docker ps 就可以看到兩套服務都已經(jīng)啟動

      Docker來搭建分布式文件系統(tǒng)FastDFS

      注意: docker ps -a 可以查看所有進程   docker rm 進程號 刪除對應進程

      然后分別進入宿主的命令行以及進入容器storage的命令行,發(fā)現(xiàn)文件夾已經(jīng)共享

      Docker來搭建分布式文件系統(tǒng)FastDFS

       

      進入正在后臺運行的storage容器

      docker exec -it storage /bin/bash

      下面來個例子(上傳視頻)

      我們可以利用docker的exec命令不進入容器,直接在宿主機的環(huán)境下調用容器內的命令,因為文件夾已經(jīng)共享,所以我們輸入的文件目錄雖然是容器中的/var/root目錄,但是實際上該上傳的文件就在宿主的/root目錄中

      docker exec -i storage /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /var/root/test.mp4

       上傳成功后,fastdfs將會返回視頻的網(wǎng)絡地址

       Docker來搭建分布式文件系統(tǒng)FastDFS

       

      瀏覽器訪問一下,沒有問題

       Docker來搭建分布式文件系統(tǒng)FastDFS

       

      至此,在宿主機中上傳文件已經(jīng)搞定,而Python同樣也可以在命令行中執(zhí)行命令,我們可以從命令中得到URL的做法來實現(xiàn)django與fastdfs的交流,這里利用的是python中的os.popen方法,可以非常簡單的在命令行中獲取返回的fastdfs網(wǎng)絡地址,從而避開了必須要安裝fastdfs的python客戶端,因為該客戶端對python3并不十分友好。代碼如下:

      import os
      import re

      std= os.popen(docker exec -i storage /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /var/root/test.mp4).read()
      print(*********** fastdfs excute start ***********)
      print(std.strip())
      print(*********** fastdfs excute end ***********)

      這樣,在django中上傳文件時,就可以通過命令的方式上傳到fastdfs中,獲取返回地址后入庫就可以了,本次操作將docker的特性運用到了極致,由此可見docker的泛用性之廣,實實在在的提高了開發(fā)效率。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號