1搏屑、概述
C/C++文件服務(wù)器主要是 FDFS (FastDFS)文件存儲(chǔ)系統(tǒng)的一個(gè)文件代理。文件服務(wù)支持 HTTP 協(xié)議粉楚,支持上傳辣恋,下載基本功能,支持秒傳文件(如果文件曾經(jīng)上傳到服務(wù)器模软,服務(wù)會(huì)記錄文件信息伟骨,不用再次上傳),這些文件信息會(huì)記錄在文件服務(wù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)燃异。文件服務(wù)器也有本地文件緩存携狭,主要支持熱點(diǎn)文件上傳下載。
每個(gè)文件上傳前客戶端需要計(jì)算其 Md5 值回俐,文件 Md5 值是文件內(nèi)容的唯一證書逛腿,客戶端根據(jù)該值跟服務(wù)器交互,如果Md5已記錄在數(shù)據(jù)庫(kù)仅颇,那說(shuō)明該文件曾經(jīng)上傳到服務(wù)器单默。因?yàn)槲募?nèi)容不保存文件名,所以文件服務(wù)器也只保存文件內(nèi)容忘瓦,并不保存文件名雕凹,文件名由其它服務(wù)進(jìn)行維護(hù)。
文件服務(wù)器只保存文件數(shù)據(jù)政冻,與其它系統(tǒng)沒(méi)有任何業(yè)務(wù)邏輯關(guān)系枚抵。只支持小文件的上傳下載,續(xù)傳等功能明场。文件需要加密的可以在客戶端加密汽摹,文件服務(wù)器不作任何加密操作。文件信息需要建立與業(yè)務(wù)信息的關(guān)系苦锨,請(qǐng)客戶端上傳或者下載成功文件后逼泣,再向相關(guān)的業(yè)務(wù)服務(wù)器添加關(guān)聯(lián)的存儲(chǔ)記錄。
2舟舒、架構(gòu)圖
client:登錄的客戶端拉庶。
lvs: 服務(wù)器集群系統(tǒng)負(fù)載均衡。
file server和fdfs均表示服務(wù)器集群秃励,支持多機(jī)器部署共同工作氏仗。
file :表示緩存磁盤的文件。
mysql:文件服務(wù)器記錄文件信息以及 fdfs 對(duì)應(yīng)的文件索引信息夺鲜。
fdfs:FastDFS是一個(gè)開源的輕量級(jí)分布式文件系統(tǒng)皆尔。
3呐舔、邏輯時(shí)序
更精彩內(nèi)容,請(qǐng)關(guān)注我的博客:https://wenfh2020.com