本發(fā)明涉及分布式系統(tǒng)領(lǐng)域,具體而言,涉及一種文件處理方法。
背景技術(shù):
在分布式系統(tǒng)中,一個(gè)重要的問(wèn)題就是同步。同步包括數(shù)據(jù)的同步、信息的同步、文件的同步等,這其中比較重要的同步就是文件同步,因?yàn)楹芏鄡?nèi)容的同步就是文件,或許需要基于文件同步。
現(xiàn)有技術(shù)中,當(dāng)一個(gè)服務(wù)器中增加文件或者刪除文件之后,該服務(wù)器會(huì)向系統(tǒng)中的其他服務(wù)器發(fā)送信息,其他服務(wù)器接收信息之后,也對(duì)文件進(jìn)行相應(yīng)的增加或者刪除。這種文件的同步方式存在以下的問(wèn)題:信息的交互非常頻繁,數(shù)據(jù)量大,擴(kuò)展性差;整個(gè)系統(tǒng)的穩(wěn)定性差,尤其是文件非常多的時(shí)候。
針對(duì)上述的問(wèn)題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種文件處理方法,以至少解決現(xiàn)有技術(shù)中文件同步時(shí)client端之間進(jìn)行交互導(dǎo)致的系統(tǒng)擴(kuò)展性差的技術(shù)問(wèn)題。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種文件處理方法,包括:對(duì)第一文件執(zhí)行預(yù)設(shè)操作;向Mongodb集群發(fā)送第一信息,以使所述Mongodb集群存儲(chǔ)所述第一信息,其中,所述第一信息用于指示所述第一文件的內(nèi)容信息和第一服務(wù)器對(duì)所述第一文件執(zhí)行的操作的操作信息,當(dāng)所述Mongodb集群存儲(chǔ)所述第一信息之后,服務(wù)器能夠通過(guò)監(jiān)控所述Mongodb集群讀取到所述第一信息。
進(jìn)一步地,所述第一信息包括第一文件信息和第一操作信息,對(duì)第一文件執(zhí)行預(yù)設(shè)操作包括:接收并存儲(chǔ)所述第一文件,向Mongodb集群發(fā)送第一信息包括:向所述Mongodb集群發(fā)送所述第一文件信息和所述第一操作信息,其中,所述第一文件信息用于指示所述第一文件的內(nèi)容,所述第一操作信息用于指示所述第一服務(wù)器增加了所述第一文件。
進(jìn)一步地,所述第一信息包括第一文件信息和第二操作信息,對(duì)第一文件執(zhí)行預(yù)設(shè)操作包括:刪除所述第一文件,向Mongodb集群發(fā)送第一信息包括:向所述Mongodb集群發(fā)送所述第一文件信息和所述第二操作信息,其中,所述第一文件信息用于指示所述第一文件的內(nèi)容,所述第二操作信息用于指示所述第一服務(wù)器刪除了所述第一文件。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種文件處理方法,包括:通過(guò)監(jiān)控Mongodb集群讀取第一信息,其中,所述第一信息用于指示第一服務(wù)器對(duì)第一文件執(zhí)行的操作,所述第一信息存儲(chǔ)于所述Mongodb集群中;根據(jù)讀取到的第一信息對(duì)所述第一文件進(jìn)行相應(yīng)的操作。
進(jìn)一步地,所述第一信息包括第一文件信息和第一操作信息,通過(guò)監(jiān)控Mongodb集群讀取第一信息包括:通過(guò)監(jiān)控所述Mongodb集群讀取所述第一文件信息和所述第一操作信息,其中,所述第一文件信息用于指示所述第一文件的內(nèi)容,所述第一操作信息用于指示所述第一服務(wù)器增加了所述第一文件;根據(jù)讀取到的第一信息對(duì)所述第一文件進(jìn)行相應(yīng)的操作包括:根據(jù)讀取到的所述第一文件信息和所述第一操作信息增加所述第一文件。
進(jìn)一步地,所述第一信息包括第一文件信息和第二操作信息,通過(guò)監(jiān)控Mongodb集群讀取第一信息包括:通過(guò)監(jiān)控所述Mongodb集群讀取所述第一文件信息和所述第二操作信息,其中,所述第一文件信息用于指示所述第一文件的內(nèi)容,所述第二操作信息用于指示所述第一服務(wù)器刪除了所述第一文件;根據(jù)讀取到的第一信息對(duì)所述第一文件進(jìn)行相應(yīng)的操作包括:根據(jù)讀取到的所述第一文件信息和所述第二操作信息刪除所述第一文件。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種文件處理方法,包括:接收第一服務(wù)器發(fā)送的第一信息,其中,所述第一信息用于指示所述第一服務(wù)器對(duì)第一文件執(zhí)行的操作;存儲(chǔ)所述第一信息,其中,在Mongodb集群存儲(chǔ)所述第一信息之后,服務(wù)器能夠通過(guò)監(jiān)控所述Mongodb集群讀取到所述第一信息。
進(jìn)一步地,所述第一信息包括第一文件信息和第一操作信息,接收第一服務(wù)器發(fā)送的第一信息包括:接收所述第一服務(wù)器發(fā)送的所述第一文件信息和所述第一操作信息,其中,所述第一文件信息用于指示所述第一文件的內(nèi)容,所述第一操作信息用于指示所述第一服務(wù)器增加了所述第一文件,存儲(chǔ)所述第一信息包括:關(guān)聯(lián)存儲(chǔ)所述第一文件信息和所述第一操作信息。
進(jìn)一步地,所述第一信息包括第一文件信息和第二操作信息,接收第一服務(wù)器發(fā)送的第一信息包括:接收所述第一服務(wù)器發(fā)送的所述第一文件信息和所述第二操作信息,其中,所述第一文件信息用于指示所述第一文件的內(nèi)容,所述第二操作信息用于指示所述第一服務(wù)器刪除了所述第一文件,存儲(chǔ)所述第一信息包括:關(guān)聯(lián)存儲(chǔ)所述第一文件信息和所述第二操作信息。
進(jìn)一步地,在存儲(chǔ)所述第一信息之后,所述方法還包括:接收第二服務(wù)器發(fā)送的第二信息,其中,所述第二信息用于指示所述第二服務(wù)器根據(jù)所述第一信息對(duì)所述第一文件進(jìn)行了相應(yīng)的操作,所述第二信息中攜帶有所述第二服務(wù)器的標(biāo)識(shí)信息;將所述第一信息與所述第二服務(wù)器的標(biāo)識(shí)進(jìn)行關(guān)聯(lián)存儲(chǔ)。
在本發(fā)明實(shí)施例中,當(dāng)?shù)谝环?wù)器對(duì)第一文件執(zhí)行了某個(gè)操作之后,第一服務(wù)器向master端的Mongodb集群發(fā)送第一信息,master端的Mongodb集群接收第一信息之后,存儲(chǔ)第一信息,第二服務(wù)器監(jiān)控Mongodb集群,如果監(jiān)控到第一信息,通過(guò)讀取第一信息的內(nèi)容,能夠知道第一文件的內(nèi)容是什么,以及,第一服務(wù)器對(duì)第一文件執(zhí)行了什么操作,第二服務(wù)器也對(duì)第一文件執(zhí)行相同的操作,在這個(gè)過(guò)程中,Mongodb集群與client端進(jìn)行交互,多個(gè)client端之間沒(méi)有交互,因此,達(dá)到了提高擴(kuò)展性的技術(shù)效果,進(jìn)而解決了現(xiàn)有技術(shù)中文件同步時(shí)client端之間進(jìn)行交互導(dǎo)致的系統(tǒng)擴(kuò)展性差的技術(shù)問(wèn)題。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實(shí)施例第一服務(wù)器執(zhí)行文件處理方法的流程圖;
圖2是根據(jù)本發(fā)明實(shí)施例第二服務(wù)器執(zhí)行文件處理方法的流程圖;
圖3是根據(jù)本發(fā)明實(shí)施例Master端執(zhí)行文件處理方法的流程圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說(shuō)明的是,本發(fā)明的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類(lèi)似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送猓g(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
首先對(duì)本發(fā)明實(shí)施例所涉及的技術(shù)術(shù)語(yǔ)作如下解釋?zhuān)?/p>
Mangodb:是指分布式文檔存儲(chǔ)數(shù)據(jù)庫(kù),是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,支持的查詢(xún)語(yǔ)言非常強(qiáng)大。
master端:主控服務(wù)器。
client端:客戶(hù)端,可以是應(yīng)用服務(wù)器。
根據(jù)本發(fā)明實(shí)施例,提供了一種文件處理方法的實(shí)施例,需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本發(fā)明實(shí)施例提供的文件處理方法由master端和client端共同執(zhí)行。其中,Mongodb集群位于master端。client端有多個(gè)。
需要注意的是,下文所述的第一服務(wù)器和第二服務(wù)器均為client端。并且,第一服務(wù)器和第二服務(wù)器并非對(duì)立的。一個(gè)client端可以在一次操作中是第一服務(wù)器,在下一次操作中是第二服務(wù)器。
圖1是根據(jù)本發(fā)明實(shí)施例第一服務(wù)器執(zhí)行文件處理方法的流程圖。第一服務(wù)器為上述多個(gè)client端中的一個(gè)。如圖1所示,該方法包括如下步驟:
步驟S102,對(duì)第一文件執(zhí)行預(yù)設(shè)操作。
步驟S104,向Mongodb集群發(fā)送第一信息,以使Mongodb集群存儲(chǔ)第一信息,其中,第一信息用于指示第一文件的內(nèi)容信息和第一服務(wù)器對(duì)第一文件執(zhí)行的操作的操作信息,當(dāng)Mongodb集群存儲(chǔ)第一信息之后,服務(wù)器能夠通過(guò)監(jiān)控Mongodb集群讀取到第一信息。
在本發(fā)明實(shí)施例中,當(dāng)?shù)谝环?wù)器對(duì)第一文件執(zhí)行了某個(gè)操作之后,第一服務(wù)器向master端的Mongodb集群發(fā)送第一信息,master端的Mongodb集群接收第一信息之后,存儲(chǔ)第一信息,第二服務(wù)器監(jiān)控Mongodb集群,如果監(jiān)控到第一信息,通過(guò)讀取第一信息的內(nèi)容,能夠知道第一文件的內(nèi)容是什么,以及,第一服務(wù)器對(duì)第一文件執(zhí)行了什么操作,第二服務(wù)器也對(duì)第一文件執(zhí)行相同的操作,在這個(gè)過(guò)程中,Mongodb集群與client端進(jìn)行交互,多個(gè)client端之間沒(méi)有交互,因此,解決了現(xiàn)有技術(shù)中文件同步時(shí)client端之間進(jìn)行交互導(dǎo)致的擴(kuò)展性差的技術(shù)問(wèn)題,達(dá)到了提高擴(kuò)展性的技術(shù)效果。
client之間不會(huì)有信息的同步,這樣就保障了同步的過(guò)程簡(jiǎn)單,client只會(huì)同mongodb服務(wù)之間進(jìn)行信息交互,理論上講client可以無(wú)限擴(kuò)展。
一個(gè)mongodb集群的并發(fā)很高,可以做到3w的寫(xiě)并發(fā),讀并發(fā)更高。同時(shí)mongodb本身的集群穩(wěn)定性保障了文件信息服務(wù)的穩(wěn)定性,mongodb也是非常快的PB級(jí)數(shù)據(jù)庫(kù)。
mongodb是大容量?jī)?nèi)存數(shù)據(jù)庫(kù),保障了數(shù)據(jù)的及時(shí)性,PB的數(shù)據(jù)量下也是秒級(jí)速度,這樣讓文件的同步速度接近于及時(shí)同步速度,尤其是在client端比較多的時(shí)候,本發(fā)明實(shí)施例提供的文件處理方法在client端數(shù)量龐大時(shí)優(yōu)勢(shì)更加明顯。相比于現(xiàn)有技術(shù),本發(fā)明實(shí)施例提供的文件處理方法的文件的同步速度大大增加。
可選地,第一信息包括第一文件信息和第一操作信息,對(duì)第一文件執(zhí)行預(yù)設(shè)操作包括:接收并存儲(chǔ)第一文件,向Mongodb集群發(fā)送第一信息包括:向Mongodb集群發(fā)送第一文件信息和第一操作信息,其中,第一文件信息用于指示第一文件的內(nèi)容,第一操作信息用于指示第一服務(wù)器增加了第一文件。
可選地,第一信息包括第一文件信息和第二操作信息,對(duì)第一文件執(zhí)行預(yù)設(shè)操作包括:刪除第一文件,向Mongodb集群發(fā)送第一信息包括:向Mongodb集群發(fā)送第一文件信息和第二操作信息,其中,第一文件信息用于指示第一文件的內(nèi)容,第二操作信息用于指示第一服務(wù)器刪除了第一文件。
第一操作信息是指新增文件的操作信息,第二操作信息是刪除文件的操作信息。
文件增加時(shí)流程為:文件(第一文件)上傳到某一文件服務(wù)器(第一服務(wù)器),第一服務(wù)器將文件信息(第一信息)發(fā)布到mongodb集群,各client端(第二服務(wù)器)監(jiān)控到mongodb集群有新的信息(第一信息),根據(jù)第一信息進(jìn)行同步任務(wù)。
文件刪除時(shí)流程為:client(第一服務(wù)器)監(jiān)控文件夾,發(fā)現(xiàn)有文件(第一文件)刪除,第一服務(wù)器將發(fā)布文件刪除信息(第一信息)到mongodb集群,各client端(第二服務(wù)器)監(jiān)控到mongodb集群有新的信息(第一信息),根據(jù)第一信息進(jìn)行同步任務(wù)。
client中的增加與刪除都只會(huì)記錄到mongodb中,如此以來(lái)保障了信息交互的簡(jiǎn)單,不用client之間進(jìn)行交互。有新增client端的時(shí)候,只用同步最新的文件信息就是完整的文件信息。
在本發(fā)明實(shí)施例中,mongodb集群提供服務(wù)支持,為master端提供文件信息存儲(chǔ)服務(wù);node為client端提供文件同步程序。mongodb集群部署簡(jiǎn)單,node程序的開(kāi)發(fā)和部署都簡(jiǎn)單,而且二者都有高并發(fā)的特性。
在本發(fā)明實(shí)施例中,mongodb集群本身是集群數(shù)據(jù)庫(kù),具有集群數(shù)據(jù)庫(kù)的優(yōu)點(diǎn),例如分布式、穩(wěn)定性強(qiáng)、易擴(kuò)展、PB級(jí)數(shù)據(jù)庫(kù)、成本低等,基于mongodb集群進(jìn)行文件同步,更加穩(wěn)定和安全。
圖2是根據(jù)本發(fā)明實(shí)施例第二服務(wù)器執(zhí)行文件處理方法的流程圖,如圖2所示,包括以下步驟:
步驟S202,通過(guò)監(jiān)控Mongodb集群讀取第一信息,其中,第一信息用于指示第一服務(wù)器對(duì)第一文件執(zhí)行的操作,第一信息存儲(chǔ)于Mongodb集群中;
步驟S204,根據(jù)讀取到的第一信息對(duì)第一文件進(jìn)行相應(yīng)的操作。
在本發(fā)明實(shí)施例中,當(dāng)?shù)谝环?wù)器對(duì)第一文件執(zhí)行了某個(gè)操作之后,第一服務(wù)器向master端的Mongodb集群發(fā)送第一信息,master端的Mongodb集群接收第一信息之后,存儲(chǔ)第一信息,第二服務(wù)器監(jiān)控Mongodb集群,如果監(jiān)控到第一信息,通過(guò)讀取第一信息的內(nèi)容,能夠知道第一文件的內(nèi)容是什么,以及,第一服務(wù)器對(duì)第一文件執(zhí)行了什么操作,第二服務(wù)器也對(duì)第一文件執(zhí)行相同的操作,在這個(gè)過(guò)程中,Mongodb集群與client端進(jìn)行交互,多個(gè)client端之間沒(méi)有交互,因此,解決了現(xiàn)有技術(shù)中文件同步時(shí)client端之間進(jìn)行交互導(dǎo)致的擴(kuò)展性差的技術(shù)問(wèn)題,達(dá)到了提高擴(kuò)展性的技術(shù)效果。
client之間不會(huì)有信息的同步,這樣就保障了同步的過(guò)程簡(jiǎn)單,client只會(huì)同mongodb服務(wù)之間進(jìn)行信息交互,理論上講client可以無(wú)限擴(kuò)展。
一個(gè)mongodb集群的并發(fā)很高,可以做到3w的寫(xiě)并發(fā),讀并發(fā)更高。同時(shí)mongodb本身的集群穩(wěn)定性保障了文件信息服務(wù)的穩(wěn)定性,mongodb也是非常快的PB級(jí)數(shù)據(jù)庫(kù)。
mongodb是大容量?jī)?nèi)存數(shù)據(jù)庫(kù),保障了數(shù)據(jù)的及時(shí)性,PB的數(shù)據(jù)量下也是秒級(jí)速度,這樣讓文件的同步速度接近于及時(shí)同步速度,尤其是在client端比較多的時(shí)候,本發(fā)明實(shí)施例提供的文件處理方法在client端數(shù)量龐大時(shí)優(yōu)勢(shì)更加明顯。相比于現(xiàn)有技術(shù),本發(fā)明實(shí)施例提供的文件處理方法的文件的同步速度大大增加。
可選地,第一信息包括第一文件信息和第一操作信息,通過(guò)監(jiān)控Mongodb集群讀取第一信息包括:通過(guò)監(jiān)控Mongodb集群讀取第一文件信息和第一操作信息,其中,第一文件信息用于指示第一文件的內(nèi)容,第一操作信息用于指示第一服務(wù)器增加了第一文件;根據(jù)讀取到的第一信息對(duì)第一文件進(jìn)行相應(yīng)的操作包括:根據(jù)讀取到的第一文件信息和第一操作信息增加第一文件。
可選地,第一信息包括第一文件信息和第二操作信息,通過(guò)監(jiān)控Mongodb集群讀取第一信息包括:通過(guò)監(jiān)控Mongodb集群讀取第一文件信息和第二操作信息,其中,第一文件信息用于指示第一文件的內(nèi)容,第二操作信息用于指示第一服務(wù)器刪除了第一文件;根據(jù)讀取到的第一信息對(duì)第一文件進(jìn)行相應(yīng)的操作包括:根據(jù)讀取到的第一文件信息和第二操作信息刪除第一文件。
第一操作信息是指新增文件的操作信息,第二操作信息是刪除文件的操作信息。
文件增加時(shí)流程為:文件(第一文件)上傳到某一文件服務(wù)器(第一服務(wù)器),第一服務(wù)器將文件信息(第一信息)發(fā)布到mongodb集群,各client端(第二服務(wù)器)監(jiān)控到mongodb集群有新的信息(第一信息),根據(jù)第一信息進(jìn)行同步任務(wù)。
文件刪除時(shí)流程為:client(第一服務(wù)器)監(jiān)控文件夾,發(fā)現(xiàn)有文件(第一文件)刪除,第一服務(wù)器將發(fā)布文件刪除信息(第一信息)到mongodb集群,各client端(第二服務(wù)器)監(jiān)控到mongodb集群有新的信息(第一信息),根據(jù)第一信息進(jìn)行同步任務(wù)。
client中的增加與刪除都只會(huì)記錄到mongodb中,如此以來(lái)保障了信息交互的簡(jiǎn)單,不用client之間進(jìn)行交互。有新增client端的時(shí)候,只用同步最新的文件信息就是完整的文件信息。
在本發(fā)明實(shí)施例中,mongodb集群提供服務(wù)支持,為master端提供文件信息存儲(chǔ)服務(wù);node為client端提供文件同步程序。mongodb集群部署簡(jiǎn)單,node程序的開(kāi)發(fā)和部署都簡(jiǎn)單,而且二者都有高并發(fā)的特性。
在本發(fā)明實(shí)施例中,mongodb集群本身是集群數(shù)據(jù)庫(kù),具有集群數(shù)據(jù)庫(kù)的優(yōu)點(diǎn),例如分布式、穩(wěn)定性強(qiáng)、易擴(kuò)展、PB級(jí)數(shù)據(jù)庫(kù)、成本低等,基于mongodb集群進(jìn)行文件同步,更加穩(wěn)定和安全。
圖3是根據(jù)本發(fā)明實(shí)施例Master端執(zhí)行文件處理方法的流程圖,如圖3所示,包括以下步驟:
步驟S302,接收第一服務(wù)器發(fā)送的第一信息,其中,第一信息用于指示第一服務(wù)器對(duì)第一文件執(zhí)行的操作。
步驟S304,存儲(chǔ)第一信息,其中,在Mongodb集群存儲(chǔ)第一信息之后,服務(wù)器能夠通過(guò)監(jiān)控Mongodb集群讀取到第一信息。
在本發(fā)明實(shí)施例中,當(dāng)?shù)谝环?wù)器對(duì)第一文件執(zhí)行了某個(gè)操作之后,第一服務(wù)器向master端的Mongodb集群發(fā)送第一信息,master端的Mongodb集群接收第一信息之后,存儲(chǔ)第一信息,第二服務(wù)器監(jiān)控Mongodb集群,如果監(jiān)控到第一信息,通過(guò)讀取第一信息的內(nèi)容,能夠知道第一文件的內(nèi)容是什么,以及,第一服務(wù)器對(duì)第一文件執(zhí)行了什么操作,第二服務(wù)器也對(duì)第一文件執(zhí)行相同的操作,在這個(gè)過(guò)程中,Mongodb集群與client端進(jìn)行交互,多個(gè)client端之間沒(méi)有交互,因此,解決了現(xiàn)有技術(shù)中文件同步時(shí)client端之間進(jìn)行交互導(dǎo)致的擴(kuò)展性差的技術(shù)問(wèn)題,達(dá)到了提高擴(kuò)展性的技術(shù)效果。
client之間不會(huì)有信息的同步,這樣就保障了同步的過(guò)程簡(jiǎn)單,client只會(huì)同mongodb服務(wù)之間進(jìn)行信息交互,理論上講client可以無(wú)限擴(kuò)展。
一個(gè)mongodb集群的并發(fā)很高,可以做到3w的寫(xiě)并發(fā),讀并發(fā)更高。同時(shí)mongodb本身的集群穩(wěn)定性保障了文件信息服務(wù)的穩(wěn)定性,mongodb也是非常快的PB級(jí)數(shù)據(jù)庫(kù)。
mongodb是大容量?jī)?nèi)存數(shù)據(jù)庫(kù),保障了數(shù)據(jù)的及時(shí)性,PB的數(shù)據(jù)量下也是秒級(jí)速度,這樣讓文件的同步速度接近于及時(shí)同步速度,尤其是在client端比較多的時(shí)候,本發(fā)明實(shí)施例提供的文件處理方法在client端數(shù)量龐大時(shí)優(yōu)勢(shì)更加明顯。相比于現(xiàn)有技術(shù),本發(fā)明實(shí)施例提供的文件處理方法的文件的同步速度大大增加。
可選地,第一信息包括第一文件信息和第一操作信息,接收第一服務(wù)器發(fā)送的第一信息包括:接收第一服務(wù)器發(fā)送的第一文件信息和第一操作信息,其中,第一文件信息用于指示第一文件的內(nèi)容,第一操作信息用于指示第一服務(wù)器增加了第一文件,存儲(chǔ)第一信息包括:關(guān)聯(lián)存儲(chǔ)第一文件信息和第一操作信息。
可選地,第一信息包括第一文件信息和第二操作信息,接收第一服務(wù)器發(fā)送的第一信息包括:接收第一服務(wù)器發(fā)送的第一文件信息和第二操作信息,其中,第一文件信息用于指示第一文件的內(nèi)容,第二操作信息用于指示第一服務(wù)器刪除了第一文件,存儲(chǔ)第一信息包括:關(guān)聯(lián)存儲(chǔ)第一文件信息和第二操作信息。
第一操作信息是指新增文件的操作信息,第二操作信息是刪除文件的操作信息。
文件增加時(shí)流程為:文件(第一文件)上傳到某一文件服務(wù)器(第一服務(wù)器),第一服務(wù)器將文件信息(第一信息)發(fā)布到mongodb集群,各client端(第二服務(wù)器)監(jiān)控到mongodb集群有新的信息(第一信息),根據(jù)第一信息進(jìn)行同步任務(wù)。
文件刪除時(shí)流程為:client(第一服務(wù)器)監(jiān)控文件夾,發(fā)現(xiàn)有文件(第一文件)刪除,第一服務(wù)器將發(fā)布文件刪除信息(第一信息)到mongodb集群,各client端(第二服務(wù)器)監(jiān)控到mongodb集群有新的信息(第一信息),根據(jù)第一信息進(jìn)行同步任務(wù)。
client中的增加與刪除都只會(huì)記錄到mongodb中,如此以來(lái)保障了信息交互的簡(jiǎn)單,不用client之間進(jìn)行交互。有新增client端的時(shí)候,只用同步最新的文件信息就是完整的文件信息。
在本發(fā)明實(shí)施例中,mongodb集群提供服務(wù)支持,為master端提供文件信息存儲(chǔ)服務(wù);node為client端提供文件同步程序。mongodb集群部署簡(jiǎn)單,node程序的開(kāi)發(fā)和部署都簡(jiǎn)單,而且二者都有高并發(fā)的特性。
可選地,在存儲(chǔ)第一信息之后,方法還包括:接收第二服務(wù)器發(fā)送的第二信息,其中,第二信息用于指示第二服務(wù)器根據(jù)第一信息對(duì)第一文件進(jìn)行了相應(yīng)的操作,第二信息中攜帶有第二服務(wù)器的標(biāo)識(shí)信息;將第一信息與第二服務(wù)器的標(biāo)識(shí)進(jìn)行關(guān)聯(lián)存儲(chǔ)。
第二服務(wù)器通過(guò)監(jiān)控Mongodb集群讀取第一信息,根據(jù)讀取到的第一信息對(duì)第一文件進(jìn)行相應(yīng)的操作,例如,第二服務(wù)器根據(jù)讀取到的第一信息對(duì)第一文件進(jìn)行了刪除,之后,第二服務(wù)器將第二信息發(fā)送給master端的Mongodb集群,第二信息用于指示第二服務(wù)器根據(jù)第一信息對(duì)第一文件進(jìn)行了刪除,第二信息中攜帶有第二服務(wù)器的標(biāo)識(shí)信息,這樣,Mongodb集群通過(guò)讀取第二信息,就能夠知道哪些服務(wù)器對(duì)第一文件進(jìn)行了刪除。Mongodb集群將第一信息與第二服務(wù)器的標(biāo)識(shí)進(jìn)行關(guān)聯(lián)存儲(chǔ),以方便查詢(xún)。
再例如,第二服務(wù)器根據(jù)讀取到的第一信息對(duì)第一文件進(jìn)行了增加,之后,第二服務(wù)器將第二信息發(fā)送給master端的Mongodb集群,第二信息用于指示第二服務(wù)器根據(jù)第一信息增加了第一文件,第二信息中攜帶有第二服務(wù)器的標(biāo)識(shí)信息,這樣,Mongodb集群通過(guò)讀取第二信息,就能夠知道哪些服務(wù)器增加了第一文件。Mongodb集群將第一信息與第二服務(wù)器的標(biāo)識(shí)進(jìn)行關(guān)聯(lián)存儲(chǔ),以方便查詢(xún)。
服務(wù)器的標(biāo)識(shí)可以是服務(wù)器的IP。因?yàn)獒槍?duì)服務(wù)器而言,IP地址具有唯一性,而且可以直接使用。Mongodb集群中,每條文件信息的記錄以文件為主體,會(huì)記錄每條信息有哪些client端進(jìn)行了同步,以方便查詢(xún)。
在本發(fā)明實(shí)施例中,mongodb集群本身是集群數(shù)據(jù)庫(kù),具有集群數(shù)據(jù)庫(kù)的優(yōu)點(diǎn),例如分布式、穩(wěn)定性強(qiáng)、易擴(kuò)展、PB級(jí)數(shù)據(jù)庫(kù)、成本低等,基于mongodb集群進(jìn)行文件同步,更加穩(wěn)定和安全。
在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過(guò)其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤(pán)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。