摘要:可以將稱為追蹤服務(wù)器或調(diào)度服務(wù)器。實(shí)際保存文件分為多個(gè)組,每個(gè)組之間保存的文件是不同的。文件索引信息包括組名,虛擬磁盤(pán)路徑,數(shù)據(jù)兩級(jí)目錄,文件名。虛擬磁盤(pán)路徑配置的虛擬路徑,與磁盤(pán)選項(xiàng)對(duì)應(yīng)。
分布式圖片服務(wù)器FastDFS
1 什么是FastDFSFastDFS 是用 c 語(yǔ)言編寫(xiě)的一款開(kāi)源的分布式文件系統(tǒng)。FastDFS 為互聯(lián)網(wǎng)量身定制, 充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)制,并注重高可用、高性能等指標(biāo),使用 FastDFS 很容易搭建一套高性能的文件服務(wù)器集群提供文件上傳、下載等服務(wù)。
FastDFS 架構(gòu)包括 Tracker server 和 Storage server??蛻舳苏?qǐng)求 Tracker server 進(jìn)行文 件上傳、下載,通過(guò) Tracker server 調(diào)度最終由 Storage server 完成文件上傳和下載。
Tracker server 作用是負(fù)載均衡和調(diào)度,通過(guò) Tracker server 在文件上傳時(shí)可以根據(jù)一些 策略找到 Storage server 提供文件上傳服務(wù)??梢詫?tracker 稱為追蹤服務(wù)器或調(diào)度服務(wù) 器。
Storage server 作用是文件存儲(chǔ),客戶端上傳的文件最終存儲(chǔ)在 Storage 服務(wù)器上, Storage server 沒(méi)有實(shí)現(xiàn)自己的文件系統(tǒng)而是利用操作系統(tǒng) 的文件系統(tǒng)來(lái)管理文件??梢詫?storage 稱為存儲(chǔ)服務(wù)器。
服務(wù)端兩個(gè)角色:
Tracker:管理集群,tracker 也可以實(shí)現(xiàn)集群。每個(gè) tracker 節(jié)點(diǎn)地位平等。收集 Storage 集群的狀態(tài)。
Storage:實(shí)際保存文件 Storage 分為多個(gè)組,每個(gè)組之間保存的文件是不同的。每 個(gè)組內(nèi)部可以有多個(gè)成員,組成員內(nèi)部保存的內(nèi)容是一樣的,組成員的地位是一致的,沒(méi)有 主從的概念。
客戶端上傳文件后存儲(chǔ)服務(wù)器將文件 ID 返回給客戶端,此文件 ID 用于以后訪問(wèn)該文 件的索引信息。文件索引信息包括:組名,虛擬磁盤(pán)路徑,數(shù)據(jù)兩級(jí)目錄,文件名。
組名:文件上傳后所在的 storage 組名稱,在文件上傳成功后有 storage 服務(wù)器返回, 需要客戶端自行保存。
虛擬磁盤(pán)路徑:storage 配置的虛擬路徑,與磁盤(pán)選項(xiàng) store_path*對(duì)應(yīng)。如果配置了 store_path0 則是 M00,如果配置了 store_path1 則是 M01,以此類推。
數(shù)據(jù)兩級(jí)目錄:storage 服務(wù)器在每個(gè)虛擬磁盤(pán)路徑下創(chuàng)建的兩級(jí)目錄,用于存儲(chǔ)數(shù)據(jù) 文件。
文件名:與文件上傳時(shí)不同。是由存儲(chǔ)服務(wù)器根據(jù)特定信息生成,文件名包含:源存儲(chǔ) 服務(wù)器 IP 地址、文件創(chuàng)建時(shí)間戳、文件大小、隨機(jī)數(shù)和文件拓展名等信息。
資源下載 https://pan.baidu.com/s/1MAte...?密碼:?密碼:yszq
5.1 安裝fastdfs依賴包 1. 解壓縮libfastcommon-master.zip 2. 進(jìn)入到libfastcommon-master的目錄中 3. 執(zhí)行 ./make.sh 編譯C語(yǔ)言文件,生成可執(zhí)行文件 4. 執(zhí)行 sudo ./make.sh install 5.2 安裝fastdfs 1. 解壓縮fastdfs-master.zip 2. 進(jìn)入到 fastdfs-master目錄中 3. 執(zhí)行 ./make.sh 4. 執(zhí)行 sudo ./make.sh install 5.3 配置跟蹤服務(wù)器tracker 1. sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf 2. 在/home/python/目錄中創(chuàng)建目錄 fastdfs/tracker mkdir –p /home/python/fastdfs/tracker 3. 編輯/etc/fdfs/tracker.conf配置文件 sudo vim /etc/fdfs/tracker.conf 修改 base_path=/home/python/fastdfs/tracker 5.4 配置存儲(chǔ)服務(wù)器storage 1. sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf 2. 在/home/python/fastdfs/ 目錄中創(chuàng)建目錄 storage mkdir –p /home/python/fastdfs/storage 3. 編輯/etc/fdfs/storage.conf配置文件 sudo vim /etc/fdfs/storage.conf 修改內(nèi)容: base_path=/home/python/fastdfs/storage store_path0=/home/python/fastdfs/storage tracker_server=自己ubuntu虛擬機(jī)的ip地址:22122 5.5 啟動(dòng)tracker 和 storage sudo service fdfs_trackerd start sudo service fdfs_storaged start 或者以下兩個(gè)命令: sudo /etc/init.d/fdfs_trackerd start sudo /etc/init.d/fdfs_storaged start 5.6 測(cè)試是否安裝成功 1. sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf 2. 編輯/etc/fdfs/client.conf配置文件 sudo vim /etc/fdfs/client.conf 修改內(nèi)容: base_path=/home/python/fastdfs/tracker tracker_server=自己ubuntu虛擬機(jī)的ip地址:22122 3. 上傳文件測(cè)試: fdfs_upload_file /etc/fdfs/client.conf 要上傳的圖片文件路徑 如果返回類似group1/M00/00/01/wKjzwVouQn6AfD6ZAALb6Vx4KgI81.jpeg的文件id則說(shuō)明文件上傳成功 5.7 安裝nginx及fastdfs-nginx-module 1. 解壓縮 nginx-1.8.1.tar.gz 2. 解壓縮 fastdfs-nginx-module-master.zip 3. 進(jìn)入nginx-1.8.1目錄中 4. 執(zhí)行 sudo ./configure --prefix=/usr/local/nginx/ --add-module=fastdfs-nginx-module-master解壓后的目錄的絕對(duì)路徑/src 比如:sudo ./configure --prefix=/usr/local/nginx/ --add-module=/home/python/Desktop/fastdfs-nginx-module-master/src sudo make sudo make install 5. sudo cp fastdfs-nginx-module-master解壓后的目錄中src下的mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf 比如:sudo cp /home/python/Desktop/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf 6. sudo vim /etc/fdfs/mod_fastdfs.conf 修改內(nèi)容: connect_timeout=10 tracker_server=自己ubuntu虛擬機(jī)的ip地址:22122 url_have_group_name=true store_path0=/home/python/fastdfs/storage 7. sudo cp 解壓縮的fastdfs-master/ conf目錄中的http.conf /etc/fdfs/http.conf 比如:sudo cp /home/python/Desktop/fastdfs-master/conf/http.conf /etc/fdfs/http.conf 8. sudo cp 解壓縮的fastdfs-master/ conf目錄中的mime.types /etc/fdfs/mime.types 比如:sudo cp /home/python/Desktop/fastdfs-master/conf/mime.types /etc/fdfs/mime.types 9.sudo vim /usr/local/nginx/conf/nginx.conf 在http部分中添加配置信息如下: server { listen 8888; server_name localhost; location ~/group[0-9]/ { ngx_fastdfs_module; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } 10. 進(jìn)入根目錄啟動(dòng)nginx sudo /usr/local/nginx/sbin/nginx 11. 測(cè)試nginx獲取fdfs服務(wù)器的圖片 瀏覽器輸入地址:http://192.168.243.193:8888/group1/M00/00/01/wKjzwVouQn6AfD6ZAALb6Vx4KgI81.jpeg 說(shuō)明:group1/M00/00/01/wKjzwVouQn6AfD6ZAALb6Vx4KgI81.jpeg 為之前上傳到fdfs服務(wù)器的圖片路徑6 使用python客戶端上傳測(cè)試
1.文檔 https://github.com/jefforeilly/fdfs_client-py 2. workon django_py3 3. 進(jìn)入fdfs_client-py-master.zip所在目錄 4. pip install fdfs_client-py-master.zip >>> from fdfs_client.client import Fdfs_client >>> client = Fdfs_client("/etc/fdfs/client.conf") >>> ret = client.upload_by_filename("test") >>> ret {"Group name":"group1","Status":"Upload successed.", "Remote file_id":"group1/M00/00/00/ wKjzh0_xaR63RExnAAAaDqbNk5E1398.py","Uploaded size":"6.0KB","Local file name":"test" , "Storage IP":"192.168.243.133"}
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42537.html
摘要:可以將稱為追蹤服務(wù)器或調(diào)度服務(wù)器。實(shí)際保存文件分為多個(gè)組,每個(gè)組之間保存的文件是不同的。虛擬磁盤(pán)路徑配置的虛擬路徑,與磁盤(pán)選項(xiàng)對(duì)應(yīng)。數(shù)據(jù)兩級(jí)目錄服務(wù)器在每個(gè)虛擬磁盤(pán)路徑下創(chuàng)建的兩級(jí)目錄,用于存儲(chǔ)數(shù)據(jù)文件。1.什么是FastDFS FastDFS是用 c 語(yǔ)言編寫(xiě)的一款開(kāi)源的分布式文件系統(tǒng)。FastDFS 為互聯(lián)網(wǎng)量身定制, 充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)制,并注重高可用、高性能等...
摘要:新建文件夾嘗試啟動(dòng)為默認(rèn)監(jiān)聽(tīng)端口看到已經(jīng)在監(jiān)聽(tīng)端口,說(shuō)明啟動(dòng)成功。修改修改為的路徑,我這里為修改為你的監(jiān)聽(tīng)的和端口號(hào),我這里為保存退出。即為上傳圖片成功 于前不久,公司論壇的圖片終于將服務(wù)器給擠爆了,已經(jīng)達(dá)到了恐怖的34G,服務(wù)器總?cè)萘坎?0G。如果直接加硬盤(pán)的話,那么discuz中的邏輯幾乎就要全改,所以不行。如果將所有圖片扔到對(duì)象存儲(chǔ)的話,那么這會(huì)是一大筆支出(雖然錢(qián)不是我出),所...
摘要:新建文件夾嘗試啟動(dòng)為默認(rèn)監(jiān)聽(tīng)端口看到已經(jīng)在監(jiān)聽(tīng)端口,說(shuō)明啟動(dòng)成功。修改修改為的路徑,我這里為修改為你的監(jiān)聽(tīng)的和端口號(hào),我這里為保存退出。即為上傳圖片成功 于前不久,公司論壇的圖片終于將服務(wù)器給擠爆了,已經(jīng)達(dá)到了恐怖的34G,服務(wù)器總?cè)萘坎?0G。如果直接加硬盤(pán)的話,那么discuz中的邏輯幾乎就要全改,所以不行。如果將所有圖片扔到對(duì)象存儲(chǔ)的話,那么這會(huì)是一大筆支出(雖然錢(qián)不是我出),所...
摘要:客戶端請(qǐng)求進(jìn)行文件上傳下載,通過(guò)調(diào)度最終由完成文件上傳和下載。作用是文件存儲(chǔ),客戶端上傳的文件最終存儲(chǔ)在服務(wù)器上,沒(méi)有實(shí)現(xiàn)自己的文件系統(tǒng)而是利用操作系統(tǒng)的文件系統(tǒng)來(lái)管理文件。如果名為的文件在文件系統(tǒng)中存在,則返回,否則返回。 什么是FastDFS FastDFS 是用 c 語(yǔ)言編寫(xiě)的一款開(kāi)源的分布式文件系統(tǒng)。FastDFS 為互聯(lián)網(wǎng)量身定制, 充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)...
閱讀 2102·2023-04-25 22:58
閱讀 1451·2021-09-22 15:20
閱讀 2725·2019-08-30 15:56
閱讀 2035·2019-08-30 15:54
閱讀 2160·2019-08-29 12:31
閱讀 2782·2019-08-26 13:37
閱讀 627·2019-08-26 13:25
閱讀 2144·2019-08-26 11:58