亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        分布式文件系統(tǒng)FastDFS文件尋址算法研究與應(yīng)用

        2021-04-04 10:07:55許金財(cái)
        信息記錄材料 2021年10期
        關(guān)鍵詞:個字符客戶端分組

        許金財(cái)

        (廈門身份寶網(wǎng)絡(luò)科技有限公司 福建 廈門 361008)

        1 引言

        隨著互聯(lián)網(wǎng)的高速發(fā)展,分布式文件系統(tǒng)的應(yīng)用越來越廣泛。FastDFS是為互聯(lián)網(wǎng)應(yīng)用量身定做的分布式文件系統(tǒng),充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)制,并注重高可用、高性能等指標(biāo),適合用來存儲大量的圖片、視頻、電子文檔等文件。本文對分布式文件系統(tǒng)FastDFS進(jìn)行研究,并提出了文件編碼到文件地址的轉(zhuǎn)換算法,有效地提升了文件地址的檢索速度[1]。

        2 分布式文件系統(tǒng)FastDFS簡述

        FastDFS是一個開源的輕量級分布式文件系統(tǒng),采用C語言開發(fā),支持Linux、FreeBSD等UNIX系統(tǒng),充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)制,簡單、靈活、高效。2008年7月FastDFS發(fā)布第一個版本V1.00,截至目前最新版本是V6.07。FastDFS由跟蹤服務(wù)器(tracker server)、存儲服務(wù)器(storage server)和客戶端(client)3個部分組成,包括文件存儲、文件同步、文件訪問以及高容量和負(fù)載均衡,主要解決海量數(shù)據(jù)存儲問題。跟蹤服務(wù)器主要做調(diào)度工作,起到均衡的作用;存儲服務(wù)器主要采用分組方式提供容量和備份服務(wù)。FastDFS文件地址由FastDFS服務(wù)端生成并返回,包含了組名、文件目錄和文件名。

        3 FastDFS應(yīng)用

        FastDFS客戶端與服務(wù)端采用TCP通信協(xié)議,協(xié)議包由header和body兩部分組成,其中header由8字節(jié)的消息體長度、1字節(jié)的命令字和1字節(jié)的狀態(tài)碼組成,消息體由不同的命令字確定,允許空內(nèi)容[2]。

        FastDFS應(yīng)用中主要包括文件上傳和文件下載兩種應(yīng)用流程。

        3.1 文件上傳

        文件上傳時,由FastDFS客戶端向跟蹤服務(wù)器發(fā)送帶有101命令字的消息請求,跟蹤服務(wù)器按照負(fù)載均衡算法返回可用的存儲服務(wù)器Socket地址,再由FastDFS客戶端向指定的Socket地址發(fā)送帶有11命令字和文件內(nèi)容(可攜帶文件信息)的消息請求完成文件的上傳,存儲節(jié)點(diǎn)返回帶有組名和文件地址的文件標(biāo)識,例如:group2/M07/1B/D8/ClhYsVz0lV6AWXPXAABKRaBPLb0897.jpg,見圖1。

        圖1 文件上傳流程

        在FastDFS中,上傳后的文件標(biāo)識不是由客戶端指定,而是由Storage節(jié)點(diǎn)生成后返回給客戶端的,文件標(biāo)識作為文件訪問憑證。

        3.2 文件下載

        文件下載時,由FastDFS客戶端向Tracker服務(wù)器發(fā)送帶有102命令字和文件標(biāo)識的消息請求,Tracker按照文件標(biāo)識找到匹配的Storage存儲節(jié)點(diǎn)服務(wù)器Socket地址,再由FastDFS客戶端向指定的Socket地址發(fā)送帶有14命令字和文件標(biāo)識的消息請求,存儲節(jié)點(diǎn)返回文件內(nèi)容,見圖2。

        圖2 文件下載流程

        4 FastDFS文件尋址算法研究

        FastDFS返回的文件標(biāo)識,其表現(xiàn)形式類似于文件路徑,字符長度在46~61,與業(yè)務(wù)系統(tǒng)整合應(yīng)用時,常規(guī)做法是增加UUID唯一識別碼與文件標(biāo)識進(jìn)行映射,然后將UUID唯一標(biāo)識碼作為業(yè)務(wù)數(shù)據(jù)對應(yīng)的文件編碼進(jìn)行存儲。文件標(biāo)識映射需要使用到數(shù)據(jù)庫或Redis緩存,在高并發(fā)查詢檢索時會給服務(wù)器帶來不小的負(fù)擔(dān)。

        結(jié)合FastDFS系統(tǒng)特點(diǎn),本文采用了幾種常見的Base編碼方案來研究FastDFS文件尋址算法。文件上傳時,將服務(wù)端返回的FastDFS文件標(biāo)識解析為210 bit數(shù)據(jù)內(nèi)容,經(jīng)過Base編碼后生成36個字節(jié)的文件編碼作為文件的業(yè)務(wù)標(biāo)識。文件下載時,將文件編碼經(jīng)過Base解碼為210 bit數(shù)據(jù)內(nèi)容,再轉(zhuǎn)換為文件標(biāo)識。目前已在多個項(xiàng)目的生產(chǎn)環(huán)境中使用FastDFS分布式文件系統(tǒng)和文件尋址算法。

        4.1 Base編碼方案

        把二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為可打印字符集數(shù)據(jù)稱為base encoding,編碼后的數(shù)據(jù)方便用于存儲和網(wǎng)絡(luò)傳輸,本文中涉及Base32、Base64和Base62 3種編碼方案。

        Base32基于32個包括字母A~V、數(shù)字0~9的可打印字符。

        Base64按照bit流進(jìn)行編碼,24(6和8的最小公倍數(shù))bit為一組。

        Base62是一種基于62個可打印字符來表示二進(jìn)制數(shù)據(jù)的表示方法,可打印字符包括字母A~Z、a~z、數(shù)字0~9,共有62個字符。Base62提供了一種無符號輸出的Base64的編碼方案,在許多應(yīng)用場合其純字母和數(shù)字的輸出形式,可以有效規(guī)避因?yàn)榉枎淼母鞣N負(fù)面影響,并能夠有效削減或兼容各種Base64的變種形式。

        4.2 文件標(biāo)識解析

        FastDFS文件標(biāo)識由組名、主目錄索引、一級子目錄、二級子目錄、文件名5個部分組成。

        (1)最大支持512個分組(V2.06之前的版本最大支持64個分組);

        (2)最大支持256個主目錄;

        (3)最大支持256×256個子目錄;

        (4)文件名固定為34個字符,可包含“-”和“_”半角符號;

        (5)支持不超過6個字符的文件擴(kuò)展名(允許無擴(kuò)展名)。

        文件名的前27個字符是base64編碼字符,文件名可解析為以下6個信息。

        (1)存儲節(jié)點(diǎn)服務(wù)器IPv4(32位整數(shù));

        (2)文件創(chuàng)建時間(UNIX時間戳,32位整數(shù));

        (3)文件大?。?4位整數(shù));

        (4)文件CRC32校驗(yàn)碼(32位整數(shù));

        (5)文件擴(kuò)展名(例如.jpg);

        (6)隨機(jī)數(shù)(用來填補(bǔ)文件編號長度,其長度與文件擴(kuò)展名的長度加起來等于7)。

        前4個信息組合起來的160 bit數(shù)據(jù)內(nèi)容經(jīng)過base64編碼后形成27個字符的唯一識別碼,F(xiàn)astDFS支持不超過6個字符的文件擴(kuò)展名,為了保持長度的一致性,當(dāng)文件擴(kuò)展名小于6個字符時,F(xiàn)astDFS將隨機(jī)生成的阿拉伯?dāng)?shù)字填入文件標(biāo)識中。

        4.3 文件尋址算法

        FastDFS文件標(biāo)識編碼原則,見圖3。

        圖3 FastDFS文件標(biāo)識編碼圖解

        (1)使用group1至group512對分組名稱進(jìn)行統(tǒng)一命名(不支持其他自定義命名的組名),編碼時僅保留分組索引;

        (2)對通用的文件擴(kuò)展名進(jìn)行映射管理,最多可設(shè)置36個通用的文件擴(kuò)展名映射編碼;

        (3)使用Base編碼后的文件編碼長度固定為36個字符;

        (4)支持未設(shè)置映射編碼的文件擴(kuò)展名(此時應(yīng)使用文件編碼.后綴名完成文件尋址)。

        FastDFS文件標(biāo)識編碼方式如下。

        (1)使用2個32進(jìn)制編碼裝載10位二進(jìn)制(方便快速識別分組信息);

        (2)使用7個62進(jìn)制編碼裝載41位二進(jìn)制;

        (3)使用9個62進(jìn)制編碼裝載53位二進(jìn)制。

        FastDFS文件編碼尋址過程如下。

        (1)使用Base32將文件編碼的前兩個字符解碼為10 bit數(shù)據(jù)內(nèi)容;

        (2)使用Base62將文件編碼的第3~9個字符解碼為41 bit數(shù)據(jù)內(nèi)容;

        (3)使用Base62將文件編碼的剩余27個字符分3次解碼為3組53 bit數(shù)據(jù)內(nèi)容;

        (4)將開頭的10 bit數(shù)據(jù)內(nèi)容轉(zhuǎn)換為分組索引并加上group分組前綴(見圖3的group2);

        (5)從41 bit數(shù)據(jù)內(nèi)容中取出前3個字節(jié),轉(zhuǎn)換為文件目錄(見圖3的M07/1B/D8);

        (6)從41 bit數(shù)據(jù)內(nèi)容中取出1 bit,其他3個53 bit數(shù)據(jù)內(nèi)容中分別取出5 bit,按順序組成擴(kuò)展數(shù)據(jù)項(xiàng),其中十進(jìn)制的第1個數(shù)據(jù)位為預(yù)定義文件擴(kuò)展名(見圖3的.jpg),其他數(shù)值為文件標(biāo)識中擴(kuò)展部分的隨機(jī)阿拉伯?dāng)?shù)字(見圖3的897);

        (7)其他剩下的160 bit數(shù)據(jù)內(nèi)容,使用Base64解碼為27個字符的唯一識別碼(見圖3的ClhYsVz0lV6AWXP XAABKRaBPLb0);

        (8)最終尋址結(jié)果:group2/M07/1B/D8/ClhYsVz0lV6 AWXPXAABKRaBPLb0897.jpg。

        5 結(jié)語

        本文結(jié)合公司多個項(xiàng)目開發(fā)過程中碰到的圖片存儲服務(wù)文件編碼和檢索問題,研究了基于FastDFS分布式文件系統(tǒng)的文件編碼到文件地址的轉(zhuǎn)換算法,有效提升了文件地址的檢索速度[3]。

        猜你喜歡
        個字符客戶端分組
        分組搭配
        怎么分組
        縣級臺在突發(fā)事件報道中如何應(yīng)用手機(jī)客戶端
        傳媒評論(2018年4期)2018-06-27 08:20:24
        孵化垂直頻道:新聞客戶端新策略
        傳媒評論(2018年4期)2018-06-27 08:20:16
        基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
        電子測試(2018年10期)2018-06-26 05:53:34
        分組
        不讓長文件名成為“絆腳石”
        電腦迷(2014年8期)2014-04-29 07:37:40
        客戶端空間數(shù)據(jù)緩存策略
        工資報表計(jì)算機(jī)軟件論述
        卷宗(2011年9期)2011-05-14 17:51:19
        庖丁解牛,小說按章分割
        亚洲看片lutube在线观看| 精品女人一区二区三区| 日韩中文字幕素人水野一区| 黑人巨茎大战俄罗斯美女| 国产成人av 综合 亚洲| 国产在线视频h| 一本大道东京热无码中字| 青青草一级视频在线观看| 午夜精品免费视频一区二区三区| 午夜免费啪视频| 久久国产精品无码一区二区三区| 丰满人妻一区二区乱码中文电影网| 午夜av福利亚洲写真集| 精品人妻码一区二区三区红楼视频| 隔壁老王国产在线精品| 女人被狂躁到高潮视频免费网站| 欧洲中文字幕| 国内偷拍视频一区二区| 国产亚洲精品综合一区| 大肉大捧一进一出好爽视色大师| 亚洲国产精品国语在线| 国产成人美涵人妖视频在线观看| аⅴ天堂中文在线网| 国产乱子伦在线观看| 国产精品98福利小视频| 蜜桃精品视频一二三区| 国产欧美日韩一区二区三区| 综合网自拍| 亚洲一区久久久狠婷婷| 国产在线无码一区二区三区视频| 亚洲国产成人久久综合电影| 精品久久久久久午夜| 伊人久久大香线蕉av最新午夜| 国产特级毛片aaaaaa视频| 午夜精品久久久| 岛国视频在线无码| 国产精品三区四区亚洲av| 一夲道无码人妻精品一区二区| 亚洲国产美女在线观看| 在线女同免费观看网站| 无码中文字幕日韩专区|