本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種業(yè)務(wù)請(qǐng)求的過(guò)濾方法、裝置及系統(tǒng)。
背景技術(shù):
在NFS(Network File System,網(wǎng)絡(luò)文件系統(tǒng))內(nèi),節(jié)點(diǎn)之間可以共享文件資源,客戶端可以通過(guò)IP網(wǎng)絡(luò)在位于遠(yuǎn)端的NFS節(jié)點(diǎn)上讀寫文件,就像訪問(wèn)本地文件一樣。如圖1所示,任意一個(gè)客戶端,例如客戶端1,可以使用IP地址1向NFS內(nèi)相應(yīng)的節(jié)點(diǎn),例如,節(jié)點(diǎn)A,發(fā)送業(yè)務(wù)請(qǐng)求,此時(shí),節(jié)點(diǎn)A作為NFS的入口節(jié)點(diǎn)為客戶端1執(zhí)行該業(yè)務(wù)請(qǐng)求,例如,讀文件、寫文件或創(chuàng)建新文件等,最終節(jié)點(diǎn)A將執(zhí)行完成的業(yè)務(wù)響應(yīng)發(fā)送給客戶端1。
在實(shí)際操作中,可能因?yàn)榫W(wǎng)絡(luò)異常等原因?qū)е聵I(yè)務(wù)響應(yīng)發(fā)送失敗,此時(shí),客戶端1可能會(huì)重復(fù)向節(jié)點(diǎn)A發(fā)送上述業(yè)務(wù)請(qǐng)求,為了避免節(jié)點(diǎn)A重復(fù)執(zhí)行相同的業(yè)務(wù)請(qǐng)求,可以在NFS內(nèi)的各節(jié)點(diǎn)中設(shè)置DRC(Duplicate Request Cache,重復(fù)請(qǐng)求緩存),在業(yè)務(wù)響應(yīng)成功發(fā)送給客戶端1之前,DRC內(nèi)緩存有該業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),那么,當(dāng)節(jié)點(diǎn)A接收到標(biāo)識(shí)相同的業(yè)務(wù)請(qǐng)求時(shí),便可以直接將該業(yè)務(wù)請(qǐng)求丟棄。
然而,NFS內(nèi)的各節(jié)點(diǎn)可能會(huì)發(fā)生IP漂移現(xiàn)象,例如,當(dāng)節(jié)點(diǎn)A的負(fù)載過(guò)大時(shí),可將原本歸屬于節(jié)點(diǎn)A的IP地址1漂移至節(jié)點(diǎn)B,此時(shí),節(jié)點(diǎn)B同時(shí)具有IP地址1和IP地址2,當(dāng)客戶端1使用IP地址1發(fā)送業(yè)務(wù)請(qǐng)求時(shí),可由節(jié)點(diǎn)B代理節(jié)點(diǎn)A執(zhí)行該業(yè)務(wù)請(qǐng)求。但是,由于節(jié)點(diǎn)B無(wú)法獲知節(jié)點(diǎn)A內(nèi)的DRC,因此,節(jié)點(diǎn)B不能確定客戶端1是否發(fā)送過(guò)相同的業(yè)務(wù)請(qǐng)求,只能將接收到的業(yè)務(wù)請(qǐng)求作為新的業(yè)務(wù)請(qǐng)求處理,導(dǎo)致重復(fù)執(zhí)行相同的業(yè)務(wù)請(qǐng)求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的實(shí)施例提供一種業(yè)務(wù)請(qǐng)求的過(guò)濾方法、裝置及系統(tǒng),可在發(fā)生IP漂移的場(chǎng)景下,為NFS內(nèi)的各節(jié)點(diǎn)過(guò)濾重復(fù)的業(yè)務(wù)請(qǐng)求。
為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
第一方面,本發(fā)明的實(shí)施例提供一種業(yè)務(wù)請(qǐng)求的過(guò)濾方法,包括:目標(biāo)節(jié)點(diǎn)獲取客戶端發(fā)送的待執(zhí)行業(yè)務(wù)請(qǐng)求;進(jìn)而,目標(biāo)節(jié)點(diǎn)在分布式緩存中查找是否存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),該分布式緩存中記錄有N(N>1)個(gè)節(jié)點(diǎn)中每個(gè)節(jié)點(diǎn)已接收的業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),而該目標(biāo)節(jié)點(diǎn)為該N個(gè)節(jié)點(diǎn)中的任一個(gè),這樣可以確定該待執(zhí)行業(yè)務(wù)請(qǐng)求是否被其他節(jié)點(diǎn)接收過(guò);若存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),即說(shuō)明N個(gè)節(jié)點(diǎn)中某個(gè)節(jié)點(diǎn)已接收到與該待執(zhí)行業(yè)務(wù)請(qǐng)求相同的業(yè)務(wù)請(qǐng)求,因此,為了避免重復(fù)執(zhí)行相同的業(yè)務(wù)請(qǐng)求,該目標(biāo)節(jié)點(diǎn)可直接丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求。
在一種可能的實(shí)現(xiàn)方式中,由于任意節(jié)點(diǎn)在執(zhí)行一個(gè)業(yè)務(wù)請(qǐng)求時(shí),可能包括正在執(zhí)行和執(zhí)行完成兩種執(zhí)行狀態(tài),那么,當(dāng)目標(biāo)節(jié)點(diǎn)獲取到的待執(zhí)行業(yè)務(wù)請(qǐng)求為正在執(zhí)行的業(yè)務(wù)請(qǐng)求時(shí),則無(wú)需重復(fù)執(zhí)行,因此,該分布式緩存中具體可記錄有:業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,該執(zhí)行狀態(tài)包括正在執(zhí)行和執(zhí)行完成;此時(shí),上述若存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則該目標(biāo)節(jié)點(diǎn)丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求,包括:若存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則該目標(biāo)節(jié)點(diǎn)根據(jù)該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,確定該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài);若該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為正在執(zhí)行,則該目標(biāo)節(jié)點(diǎn)丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求,以避免重復(fù)執(zhí)行相同的業(yè)務(wù)請(qǐng)求。
在一種可能的實(shí)現(xiàn)方式中,在該目標(biāo)節(jié)點(diǎn)根據(jù)該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)確定該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之后,還包括:若該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為執(zhí)行完成,則該目標(biāo)節(jié)點(diǎn)丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求,并向該客戶端發(fā)送執(zhí)行完成該待執(zhí)行業(yè)務(wù)請(qǐng)求的業(yè)務(wù)響應(yīng);該目標(biāo)節(jié)點(diǎn)在該分布式緩存中刪除該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,這樣,后續(xù)任意節(jié)點(diǎn)再次接收到該待執(zhí)行業(yè)務(wù)請(qǐng)求時(shí),由于分布式緩存中已經(jīng)沒(méi)有該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,因此,節(jié)點(diǎn)可以繼續(xù)執(zhí)行該待執(zhí)行業(yè)務(wù)請(qǐng)求。
在一種可能的實(shí)現(xiàn)方式中,在該目標(biāo)節(jié)點(diǎn)在分布式緩存中查找是否存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)之后,還包括:若不存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則該目標(biāo)節(jié)點(diǎn)在該分布式緩存中建立該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為正在執(zhí)行,這樣,后續(xù)任意節(jié)點(diǎn)接收到與該待執(zhí)行業(yè)務(wù)請(qǐng)求相同的業(yè)務(wù)請(qǐng)求時(shí),可根據(jù)該業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)丟棄該業(yè)務(wù)請(qǐng)求。
由于任意節(jié)點(diǎn)在執(zhí)行一個(gè)業(yè)務(wù)請(qǐng)求時(shí),可能包括正在執(zhí)行和執(zhí)行完成兩種執(zhí)行狀態(tài),那么,當(dāng)目標(biāo)節(jié)點(diǎn)獲取到的待執(zhí)行業(yè)務(wù)請(qǐng)求為正在執(zhí)行的業(yè)務(wù)請(qǐng)求時(shí),則無(wú)需重復(fù)執(zhí)行,因此,
在一種可能的實(shí)現(xiàn)方式中,在該目標(biāo)節(jié)點(diǎn)在該分布式緩存中建立該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系之后,還包括:該目標(biāo)節(jié)點(diǎn)執(zhí)行該待執(zhí)行業(yè)務(wù)請(qǐng)求;該目標(biāo)節(jié)點(diǎn)向該客戶端發(fā)送執(zhí)行完成該待執(zhí)行業(yè)務(wù)請(qǐng)求的業(yè)務(wù)響應(yīng);該目標(biāo)節(jié)點(diǎn)在該分布式緩存中刪除該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系。
在一種可能的實(shí)現(xiàn)方式中,在該目標(biāo)節(jié)點(diǎn)向該客戶端發(fā)送執(zhí)行完成該待執(zhí)行業(yè)務(wù)請(qǐng)求的業(yè)務(wù)響應(yīng)之后,還包括:若該業(yè)務(wù)響應(yīng)發(fā)送失敗,則該目標(biāo)節(jié)點(diǎn)在該分布式緩存中將該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)修改為執(zhí)行完成,這樣,后續(xù)任意節(jié)點(diǎn)查詢到該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)修改為執(zhí)行完成時(shí),便無(wú)需再次重復(fù)執(zhí)行該業(yè)務(wù)請(qǐng)求,并重新向客戶端發(fā)送執(zhí)行完成該待執(zhí)行業(yè)務(wù)請(qǐng)求的業(yè)務(wù)響應(yīng)。
在一種可能的實(shí)現(xiàn)方式中,該目標(biāo)節(jié)點(diǎn)在分布式緩存中查找是否存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),包括:該目標(biāo)節(jié)點(diǎn)確定本地DRC中是否存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí);該本地DRC內(nèi)僅緩存有目標(biāo)節(jié)點(diǎn)已接收的業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),若本地DRC中不存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則該目標(biāo)節(jié)點(diǎn)在該分布式緩存中查找是否存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)。
在一種可能的實(shí)現(xiàn)方式中,在該目標(biāo)節(jié)點(diǎn)確定本地重復(fù)請(qǐng)求緩存DRC中是否存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)之后,還包括:若本地DRC中存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則該目標(biāo)節(jié)點(diǎn)丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求,由于本地DRC內(nèi)的數(shù)據(jù)量較小,因此,目標(biāo)節(jié)點(diǎn)在本地DRC內(nèi)查找是否存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)的效率較高,當(dāng)本地DRC內(nèi)存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)時(shí),目標(biāo)節(jié)點(diǎn)可以直接丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求,從而提高丟棄重復(fù)業(yè)務(wù)請(qǐng)求的響應(yīng)速度。
第二方面,本發(fā)明的實(shí)施例提供一種節(jié)點(diǎn),包括:獲取單元,用于獲取客戶端發(fā)送的待執(zhí)行業(yè)務(wù)請(qǐng)求;查找單元,用于在分布式緩存中查找是否存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),該分布式緩存中記錄有N個(gè)節(jié)點(diǎn)中每個(gè)節(jié)點(diǎn)已接收的業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),N>1;過(guò)濾單元,用于若存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求。
在一種可能的實(shí)現(xiàn)方式中,該分布式緩存中包括業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,該執(zhí)行狀態(tài)包括正在執(zhí)行和執(zhí)行完成;該過(guò)濾單元,具體用于若存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則根據(jù)該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)確定該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài);若該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為正在執(zhí)行,則丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求。
在一種可能的實(shí)現(xiàn)方式中,該節(jié)點(diǎn)還包括:發(fā)送單元,用于若該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為執(zhí)行完成,則向該客戶端發(fā)送執(zhí)行完成該待執(zhí)行業(yè)務(wù)請(qǐng)求的業(yè)務(wù)響應(yīng);刪除單元,用于在該分布式緩存中刪除該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系。
在一種可能的實(shí)現(xiàn)方式中,該節(jié)點(diǎn)還包括:建立單元,用于若不存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則在該分布式緩存中建立該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為正在執(zhí)行。
在一種可能的實(shí)現(xiàn)方式中,該節(jié)點(diǎn)還包括執(zhí)行單元,該執(zhí)行單元,用于執(zhí)行該待執(zhí)行業(yè)務(wù)請(qǐng)求;該發(fā)送單元,還用于向該客戶端發(fā)送執(zhí)行完成該待執(zhí)行業(yè)務(wù)請(qǐng)求的業(yè)務(wù)響應(yīng);該刪除單元,還用于在該分布式緩存中刪除該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系。
在一種可能的實(shí)現(xiàn)方式中,該執(zhí)行單元,還用于若該業(yè)務(wù)響應(yīng)發(fā)送失敗,則在該分布式緩存中將該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)修改為執(zhí)行完成。
在一種可能的實(shí)現(xiàn)方式中,該查找單元,具體用于確定本地DRC中是否存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí);若本地DRC中不存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則在該分布式緩存中查找是否存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)。
在一種可能的實(shí)現(xiàn)方式中,該過(guò)濾單元,還用于若本地DRC中存在該待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求。
第三方面,本發(fā)明的實(shí)施例提供一種節(jié)點(diǎn),包括:處理器、存儲(chǔ)器、總線和通信接口;該存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)執(zhí)行指令,該處理器與該存儲(chǔ)器通過(guò)該總線連接,當(dāng)該節(jié)點(diǎn)運(yùn)行時(shí),該處理器執(zhí)行該存儲(chǔ)器存儲(chǔ)的該計(jì)算機(jī)執(zhí)行指令,以使該節(jié)點(diǎn)執(zhí)行上述任意一項(xiàng)業(yè)務(wù)請(qǐng)求的過(guò)濾方法。
第四方面,本發(fā)明的實(shí)施例提供一種業(yè)務(wù)請(qǐng)求的過(guò)濾系統(tǒng),包括N(N>1)個(gè)第二方面中任一項(xiàng)所述的節(jié)點(diǎn),該N個(gè)節(jié)點(diǎn)內(nèi)建立有分布式緩存,該分布式緩存中記錄有N個(gè)節(jié)點(diǎn)中每個(gè)節(jié)點(diǎn)已接收的業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)。
第五方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),用于儲(chǔ)存為上述節(jié)點(diǎn)所用的計(jì)算機(jī)軟件指令,其包含用于執(zhí)行上述方面為該節(jié)點(diǎn)所設(shè)計(jì)的程序。
本發(fā)明中,上述節(jié)點(diǎn)以及過(guò)濾系統(tǒng)的名字對(duì)設(shè)備本身不構(gòu)成限定,在實(shí)際實(shí)現(xiàn)中,這些設(shè)備可以以其他名稱出現(xiàn)。只要各個(gè)設(shè)備的功能和本發(fā)明類似,即屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi)。
另外,第二方面至第五方面中任一種設(shè)計(jì)方式所帶來(lái)的技術(shù)效果可參見第一方面中不同設(shè)計(jì)方式所帶來(lái)的技術(shù)效果,此處不再贅述。
本發(fā)明的這些方面或其他方面在以下實(shí)施例的描述中會(huì)更加簡(jiǎn)明易懂。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹。
圖1為現(xiàn)有技術(shù)中NFS的應(yīng)用場(chǎng)景示意圖;
圖2為本發(fā)明實(shí)施例提供的一種業(yè)務(wù)請(qǐng)求的過(guò)濾系統(tǒng)的架構(gòu)示意圖一;
圖3為本發(fā)明實(shí)施例提供的一種業(yè)務(wù)請(qǐng)求的過(guò)濾系統(tǒng)的架構(gòu)示意圖二;
圖4為本發(fā)明實(shí)施例提供的一種業(yè)務(wù)請(qǐng)求的過(guò)濾方法的交互示意圖一;
圖5為本發(fā)明實(shí)施例提供的一種業(yè)務(wù)請(qǐng)求的過(guò)濾系統(tǒng)的架構(gòu)示意圖三;
圖6為本發(fā)明實(shí)施例提供的一種業(yè)務(wù)請(qǐng)求的過(guò)濾方法的交互示意圖二;
圖7為本發(fā)明實(shí)施例提供的一種節(jié)點(diǎn)的結(jié)構(gòu)示意圖一;
圖8為本發(fā)明實(shí)施例提供的一種節(jié)點(diǎn)的結(jié)構(gòu)示意圖二;
圖9為本發(fā)明實(shí)施例提供的一種節(jié)點(diǎn)的結(jié)構(gòu)示意圖三。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。
另外,術(shù)語(yǔ)“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括一個(gè)或者更多個(gè)該特征。在本發(fā)明的描述中,除非另有說(shuō)明,“多個(gè)”的含義是兩個(gè)或兩個(gè)以上。
本發(fā)明的實(shí)施例提供一種業(yè)務(wù)請(qǐng)求的過(guò)濾方法,可應(yīng)用在如圖2所示的業(yè)務(wù)請(qǐng)求的過(guò)濾系統(tǒng)(后續(xù)簡(jiǎn)稱為過(guò)濾系統(tǒng))100中,其中,過(guò)濾系統(tǒng)100中包括N(N>1)個(gè)節(jié)點(diǎn)21,這N個(gè)節(jié)點(diǎn)21內(nèi)建立有分布式緩存22,該分布式緩存22中記錄有N個(gè)節(jié)點(diǎn)21中每個(gè)節(jié)點(diǎn)21已接收的業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)。
其中,分布式緩存22是指利用分布式存儲(chǔ)技術(shù),將緩存數(shù)據(jù)存儲(chǔ)在N個(gè)節(jié)點(diǎn)21內(nèi),使這些分散的存儲(chǔ)資源構(gòu)成一個(gè)虛擬的緩存存儲(chǔ)空間,各個(gè)節(jié)點(diǎn)21之間可以共享分布式緩存22內(nèi)的緩存數(shù)據(jù)。
在本發(fā)明實(shí)施例中,如圖3所示,當(dāng)任意節(jié)點(diǎn)21,例如,節(jié)點(diǎn)A,接收到客戶端1發(fā)送的一個(gè)新的業(yè)務(wù)請(qǐng)求時(shí),可將該新的業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)存儲(chǔ)至分布式緩存22中,直至執(zhí)行完成該新的業(yè)務(wù)請(qǐng)求,并成功發(fā)送對(duì)該新的業(yè)務(wù)請(qǐng)求的業(yè)務(wù)響應(yīng)至客戶端1之后,在分布式緩存22中刪除該新的業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),也就是說(shuō),分布式緩存22中包含有每個(gè)節(jié)點(diǎn)21已接收的業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),這些業(yè)務(wù)請(qǐng)求均為尚未成功向客戶端發(fā)送給業(yè)務(wù)響應(yīng)的業(yè)務(wù)請(qǐng)求,那么,當(dāng)節(jié)點(diǎn)A發(fā)生IP漂移現(xiàn)象,例如,節(jié)點(diǎn)A的IP地址1漂移到節(jié)點(diǎn)B時(shí),客戶端1通過(guò)IP地址1可以向節(jié)點(diǎn)B發(fā)送業(yè)務(wù)請(qǐng)求,例如,待執(zhí)行業(yè)務(wù)請(qǐng)求,此時(shí),節(jié)點(diǎn)B可以通過(guò)查詢分布式緩存22內(nèi)是否存有待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),來(lái)確定該待執(zhí)行業(yè)務(wù)請(qǐng)求是否被其他節(jié)點(diǎn)接收過(guò),當(dāng)分布式緩存22內(nèi)存有待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)時(shí),即說(shuō)明某個(gè)節(jié)點(diǎn)已接收到與待執(zhí)行業(yè)務(wù)請(qǐng)求相同的業(yè)務(wù)請(qǐng)求,如果節(jié)點(diǎn)B繼續(xù)執(zhí)行該待執(zhí)行業(yè)務(wù)請(qǐng)求,則會(huì)引起N個(gè)節(jié)點(diǎn)21內(nèi)的數(shù)據(jù)發(fā)生不一致的現(xiàn)象,甚至引起IO(Input/Output,輸入/輸出)操作失敗等錯(cuò)誤,例如,節(jié)點(diǎn)A占用了相應(yīng)的IO資源刪除了一個(gè)文件,而節(jié)點(diǎn)B如果重復(fù)執(zhí)行該創(chuàng)建操作,即刪除一個(gè)節(jié)點(diǎn)A已經(jīng)刪除的不存在的文件,則會(huì)引起IO操作失敗,因此,為了避免重復(fù)執(zhí)行相同的業(yè)務(wù)請(qǐng)求,當(dāng)分布式緩存22內(nèi)存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)時(shí),節(jié)點(diǎn)B可以直接丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求。
可以看出,本發(fā)明實(shí)施例中通過(guò)N個(gè)節(jié)點(diǎn)21內(nèi)的分布式緩存22來(lái)存儲(chǔ)每個(gè)節(jié)點(diǎn)21已接收的業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),當(dāng)任意節(jié)點(diǎn)21發(fā)生IP漂移時(shí),仍然能夠支持漂移后的節(jié)點(diǎn)21執(zhí)行類似于DRC機(jī)制的業(yè)務(wù)請(qǐng)求過(guò)濾過(guò)程,避免過(guò)濾系統(tǒng)100內(nèi)的各節(jié)點(diǎn)21由于重復(fù)執(zhí)行相同的業(yè)務(wù)請(qǐng)求,引起各節(jié)點(diǎn)21內(nèi)數(shù)據(jù)不一致甚至IO操作失敗等問(wèn)題。
示例性的,上述過(guò)濾系統(tǒng)100具體可以為NFS(Network File System,網(wǎng)絡(luò)文件系統(tǒng)),過(guò)濾系統(tǒng)100內(nèi)的各節(jié)點(diǎn)21具體可以為NAS(Network Attached Storage,網(wǎng)絡(luò)附屬存儲(chǔ))服務(wù)器等,本發(fā)明實(shí)施例對(duì)此不作任何限制。
以下,將以圖3中的節(jié)點(diǎn)B和節(jié)點(diǎn)A為例詳細(xì)闡述在IP漂移場(chǎng)景下,本發(fā)明的實(shí)施例提供的一種業(yè)務(wù)請(qǐng)求的過(guò)濾方法,如圖4所示,在發(fā)生IP漂移之前,該方法包括:
101、節(jié)點(diǎn)A獲取客戶端發(fā)送的待執(zhí)行業(yè)務(wù)請(qǐng)求。
102、節(jié)點(diǎn)A在分布式緩存中查找是否存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),該分布式緩存中包括業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,該執(zhí)行狀態(tài)包括正在執(zhí)行和執(zhí)行完成。
103、若不存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則節(jié)點(diǎn)A在分布式緩存中建立待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,此時(shí),待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為正在執(zhí)行。
104、節(jié)點(diǎn)A執(zhí)行待執(zhí)行業(yè)務(wù)請(qǐng)求。
105、節(jié)點(diǎn)A向客戶端發(fā)送執(zhí)行完成待執(zhí)行業(yè)務(wù)請(qǐng)求的業(yè)務(wù)響應(yīng)。
106、若業(yè)務(wù)響應(yīng)發(fā)送失敗,則節(jié)點(diǎn)A在分布式緩存中將待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)修改為執(zhí)行完成。
具體的,在發(fā)生IP漂移之前,客戶端向過(guò)濾系統(tǒng)100發(fā)送業(yè)務(wù)請(qǐng)求時(shí),會(huì)默認(rèn)與IP地址為IP地址1的節(jié)點(diǎn)A交互,因此,步驟101中,客戶端可以通過(guò)IP網(wǎng)絡(luò),發(fā)送待執(zhí)行業(yè)務(wù)請(qǐng)求至節(jié)點(diǎn)A,例如,該待執(zhí)行業(yè)務(wù)請(qǐng)求具體可以為寫數(shù)據(jù)、刪除一個(gè)文件,或創(chuàng)建一個(gè)新文件等。
那么,在步驟102中,節(jié)點(diǎn)A收到待執(zhí)行業(yè)務(wù)請(qǐng)求之后,可以在分布式緩存中查找是否存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),從而確定該待執(zhí)行業(yè)務(wù)請(qǐng)求是否為重復(fù)的業(yè)務(wù)請(qǐng)求。
具體的,該分布式緩存中可以包括業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,其中,該執(zhí)行狀態(tài)包括正在執(zhí)行和執(zhí)行完成,例如,可以使用一個(gè)標(biāo)志位來(lái)表示該執(zhí)行狀態(tài),當(dāng)標(biāo)志位為1時(shí),指示與該業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為正在執(zhí)行,當(dāng)標(biāo)志位為0時(shí),指示與該業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為執(zhí)行完成。
當(dāng)執(zhí)行狀態(tài)為正在執(zhí)行時(shí),則說(shuō)明過(guò)濾系統(tǒng)100中的某個(gè)節(jié)點(diǎn)已經(jīng)接收過(guò)相應(yīng)的業(yè)務(wù)請(qǐng)求,并且正在執(zhí)行該業(yè)務(wù)請(qǐng)求;當(dāng)執(zhí)行狀態(tài)為執(zhí)行完成時(shí),則說(shuō)明過(guò)濾系統(tǒng)100中的某個(gè)節(jié)點(diǎn)已經(jīng)接收過(guò)相應(yīng)的業(yè)務(wù)請(qǐng)求,并且已經(jīng)執(zhí)行完成該業(yè)務(wù)請(qǐng)求,例如,節(jié)點(diǎn)X已經(jīng)根據(jù)該業(yè)務(wù)請(qǐng)求創(chuàng)建了一個(gè)新文件,但是,執(zhí)行完成該業(yè)務(wù)請(qǐng)求的業(yè)務(wù)響應(yīng)還沒(méi)有成功發(fā)送至客戶端,此時(shí),可在分布式緩存中將該業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)修改為執(zhí)行完成。
進(jìn)一步地,示例性的,如圖5所示,還可以在過(guò)濾系統(tǒng)100中的各個(gè)節(jié)點(diǎn)21內(nèi)保留原有的DRC,即本地DRC,以節(jié)點(diǎn)A為例,該本地DRC內(nèi)緩存有節(jié)點(diǎn)A已接收的業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),那么,在步驟102中,節(jié)點(diǎn)A可以先在本地DRC內(nèi)查找是否存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),如果本地DRC內(nèi)存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則說(shuō)明節(jié)點(diǎn)A已經(jīng)接收過(guò)與待執(zhí)行業(yè)務(wù)請(qǐng)求相同的業(yè)務(wù)請(qǐng)求,此時(shí),節(jié)點(diǎn)A可以直接丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求;如果本地DRC內(nèi)不存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則可繼續(xù)在分布式緩存22中查找是否存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),從而確定是否有其他節(jié)點(diǎn)已接收過(guò)該待執(zhí)行業(yè)務(wù)請(qǐng)求。
其中,由于本地DRC內(nèi)的數(shù)據(jù)量較小,因此,節(jié)點(diǎn)A在本地DRC內(nèi)查找是否存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)的效率較高,當(dāng)本地DRC內(nèi)存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)時(shí),節(jié)點(diǎn)A可以直接丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求,從而提高丟棄重復(fù)業(yè)務(wù)請(qǐng)求的響應(yīng)速度。
若分布式緩存中不存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則說(shuō)明該待執(zhí)行業(yè)務(wù)請(qǐng)求為一個(gè)新的業(yè)務(wù)請(qǐng)求,那么,在步驟103中,節(jié)點(diǎn)A可以在分布式緩存中建立待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,此時(shí),該待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為正在執(zhí)行。
進(jìn)而,在步驟104中,節(jié)點(diǎn)A可以執(zhí)行該待執(zhí)行業(yè)務(wù)請(qǐng)求。
需要說(shuō)明的是,節(jié)點(diǎn)A可以同時(shí)執(zhí)行步驟103和104,也可以先執(zhí)行步驟103再執(zhí)行步驟104,或先執(zhí)行步驟104再執(zhí)行步驟103,本發(fā)明實(shí)施例對(duì)此不作任何限制。
執(zhí)行完成該待執(zhí)行業(yè)務(wù)請(qǐng)求之后,節(jié)點(diǎn)A可以向客戶端發(fā)送執(zhí)行完成待執(zhí)行業(yè)務(wù)請(qǐng)求的業(yè)務(wù)響應(yīng)。
此時(shí),若該業(yè)務(wù)響應(yīng)成功發(fā)送至客戶端,則節(jié)點(diǎn)A可以在分布式緩存中刪除步驟103中建立的待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系。
若該業(yè)務(wù)響應(yīng)發(fā)送失敗,即客戶端沒(méi)有接收到該業(yè)務(wù)響應(yīng),那么客戶端可能會(huì)繼續(xù)發(fā)送相同的待執(zhí)行業(yè)務(wù)請(qǐng)求,此時(shí),在步驟106中,節(jié)點(diǎn)A可以在分布式緩存中將待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)修改為執(zhí)行完成,這樣,一旦接收到相同的待執(zhí)行業(yè)務(wù)請(qǐng)求,節(jié)點(diǎn)A可以根據(jù)待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)確定待執(zhí)行業(yè)務(wù)請(qǐng)求已經(jīng)執(zhí)行完成,只需向客戶端再次發(fā)送該業(yè)務(wù)響應(yīng)即可。
進(jìn)一步地,仍以圖3中的節(jié)點(diǎn)B和節(jié)點(diǎn)A為例,在上述步驟101-106的任意過(guò)程中,當(dāng)節(jié)點(diǎn)A的IP地址漂移到節(jié)點(diǎn)B之后,如圖6所示,該方法包括:
201、節(jié)點(diǎn)B獲取客戶端發(fā)送的待執(zhí)行業(yè)務(wù)請(qǐng)求。
202、節(jié)點(diǎn)B在分布式緩存中查找是否存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),該分布式緩存中包括業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,該執(zhí)行狀態(tài)包括正在執(zhí)行和執(zhí)行完成。
203、若存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則節(jié)點(diǎn)B根據(jù)待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)確定待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)。
204a、若待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為正在執(zhí)行,則節(jié)點(diǎn)B丟棄待執(zhí)行業(yè)務(wù)請(qǐng)求。
204b、若待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為執(zhí)行完成,則節(jié)點(diǎn)B向客戶端發(fā)送執(zhí)行完成待執(zhí)行業(yè)務(wù)請(qǐng)求的業(yè)務(wù)響應(yīng)。
205b、節(jié)點(diǎn)B在分布式緩存中刪除待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系。
具體的,當(dāng)節(jié)點(diǎn)A的IP地址漂移到節(jié)點(diǎn)B之后,節(jié)點(diǎn)B同時(shí)具有原來(lái)節(jié)點(diǎn)A的IP地址1和自身原本的IP地址2,那么,原來(lái)與節(jié)點(diǎn)A交互的客戶端此時(shí)通過(guò)IP地址1與節(jié)點(diǎn)B交互,即步驟201,節(jié)點(diǎn)B獲取客戶端發(fā)送的待執(zhí)行業(yè)務(wù)請(qǐng)求。
由于節(jié)點(diǎn)B無(wú)法確定接收到的待執(zhí)行業(yè)務(wù)請(qǐng)求是否由節(jié)點(diǎn)A或自身接收過(guò),因此,在步驟202中,節(jié)點(diǎn)B在分布式緩存中查找是否存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),與步驟102中的分布式緩存類似的,該分布式緩存中包括業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,該執(zhí)行狀態(tài)包括正在執(zhí)行和執(zhí)行完成。
那么,在步驟203中,如果分布式緩存中存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則說(shuō)明過(guò)濾系統(tǒng)100中已經(jīng)有節(jié)點(diǎn)接收過(guò)該待執(zhí)行業(yè)務(wù)請(qǐng)求,此時(shí),節(jié)點(diǎn)B可以根據(jù)待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,確定待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)。
若待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為正在執(zhí)行,則執(zhí)行上述步驟204a;若待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為執(zhí)行完成,則執(zhí)行上述步驟204b-205b。
具體的。在步驟204a中,如果待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為正在執(zhí)行,則節(jié)點(diǎn)B可以直接丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求,從而避免重復(fù)執(zhí)行相同的業(yè)務(wù)請(qǐng)求。
例如,在節(jié)點(diǎn)A執(zhí)行上述步驟104時(shí)發(fā)生了IP漂移,那么,客戶端后續(xù)發(fā)送的待執(zhí)行業(yè)務(wù)請(qǐng)求由節(jié)點(diǎn)B接收,而此時(shí),節(jié)點(diǎn)A仍然在執(zhí)行上述步驟104,即執(zhí)行該待執(zhí)行業(yè)務(wù)請(qǐng)求,那么,當(dāng)節(jié)點(diǎn)B在分布式緩存中確定待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為正在執(zhí)行時(shí),可以直接丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求,而當(dāng)節(jié)點(diǎn)A執(zhí)行完成該待執(zhí)行業(yè)務(wù)請(qǐng)求后,會(huì)在分布式緩存中修改待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài),將待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)修改為執(zhí)行完成,此時(shí),若節(jié)點(diǎn)B仍接收到客戶端發(fā)送的相同的業(yè)務(wù)請(qǐng)求(即待執(zhí)行業(yè)務(wù)請(qǐng)求),則節(jié)點(diǎn)B可以在分布式緩存中確定待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為執(zhí)行完成,進(jìn)而執(zhí)行上述步驟204b。
具體的,在步驟204b中,如果待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)為執(zhí)行完成,那么,節(jié)點(diǎn)B也無(wú)需執(zhí)行該待執(zhí)行業(yè)務(wù)請(qǐng)求,而是可以直接丟棄該待執(zhí)行業(yè)務(wù)請(qǐng)求,并向客戶端發(fā)送執(zhí)行完成待執(zhí)行業(yè)務(wù)請(qǐng)求的業(yè)務(wù)響應(yīng)即可。
并且,當(dāng)上述業(yè)務(wù)響應(yīng)成功發(fā)送至客戶端后,在步驟205b中,節(jié)點(diǎn)B還需要在分布式緩存中刪除待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí)與待執(zhí)行業(yè)務(wù)請(qǐng)求的執(zhí)行狀態(tài)之間的對(duì)應(yīng)關(guān)系,否則,當(dāng)過(guò)濾系統(tǒng)100中的任意節(jié)點(diǎn)再次接收到該待執(zhí)行業(yè)務(wù)請(qǐng)求時(shí),會(huì)將該待執(zhí)行業(yè)務(wù)請(qǐng)求當(dāng)作重復(fù)的業(yè)務(wù)請(qǐng)求丟棄。
至此,本發(fā)明的實(shí)施例提供一種業(yè)務(wù)請(qǐng)求的過(guò)濾方法,其中,若目標(biāo)節(jié)點(diǎn)(目標(biāo)節(jié)點(diǎn)為過(guò)濾系統(tǒng)中N個(gè)節(jié)點(diǎn)中的任一個(gè),N>1)獲取到客戶端發(fā)送的待執(zhí)行業(yè)務(wù)請(qǐng)求,則在分布式緩存中查找是否存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),由于該分布式緩存中記錄有N個(gè)節(jié)點(diǎn)中每個(gè)節(jié)點(diǎn)已接收的業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),因此,無(wú)論是否發(fā)生IP漂移,若存在待執(zhí)行業(yè)務(wù)請(qǐng)求的標(biāo)識(shí),則說(shuō)明已經(jīng)有節(jié)點(diǎn)接收了該待執(zhí)行業(yè)務(wù)請(qǐng)求,因此,目標(biāo)節(jié)點(diǎn)可直接丟棄待執(zhí)行業(yè)務(wù)請(qǐng)求,從而為過(guò)濾系統(tǒng)內(nèi)的各節(jié)點(diǎn)過(guò)濾重復(fù)的業(yè)務(wù)請(qǐng)求。
上述實(shí)施例主要從各個(gè)網(wǎng)元之間交互的角度對(duì)本發(fā)明實(shí)施例提供的方案進(jìn)行了介紹??梢岳斫獾氖牵鱾€(gè)網(wǎng)元,例如節(jié)點(diǎn)21,為了實(shí)現(xiàn)上述功能,其包含了執(zhí)行各個(gè)功能相應(yīng)的硬件結(jié)構(gòu)和/或軟件模塊。本領(lǐng)域技術(shù)人員應(yīng)該很容易意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,本發(fā)明能夠以硬件或硬件和計(jì)算機(jī)軟件的結(jié)合形式來(lái)實(shí)現(xiàn)。某個(gè)功能究竟以硬件還是計(jì)算機(jī)軟件驅(qū)動(dòng)硬件的方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
本發(fā)明實(shí)施例可以根據(jù)上述方法示例對(duì)節(jié)點(diǎn)21等進(jìn)行功能模塊的劃分,例如,可以對(duì)應(yīng)各個(gè)功能劃分各個(gè)功能模塊,也可以將兩個(gè)或兩個(gè)以上的功能集成在一個(gè)處理模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。需要說(shuō)明的是,本發(fā)明實(shí)施例中對(duì)模塊的劃分是示意性的,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式。
在采用對(duì)應(yīng)各個(gè)功能劃分各個(gè)功能模塊的情況下,圖7示出了上述實(shí)施例中所涉及的節(jié)點(diǎn)21的一種可能的結(jié)構(gòu)示意圖,節(jié)點(diǎn)21包括:獲取單元31、查找單元32、過(guò)濾單元33、發(fā)送單元34、刪除單元35、建立單元36、以及執(zhí)行單元37。獲取單元31用于支持節(jié)點(diǎn)21執(zhí)行圖4中的過(guò)程101和圖6中的過(guò)程201,查找單元32用于支持節(jié)點(diǎn)21執(zhí)行圖4中的過(guò)程102和圖6中的過(guò)程202;過(guò)濾單元33用于支持節(jié)點(diǎn)21執(zhí)行圖6中的過(guò)程203和204a;發(fā)送單元34用于支持節(jié)點(diǎn)21執(zhí)行圖4中的過(guò)程105;刪除單元35用于支持節(jié)點(diǎn)21執(zhí)行圖6中的過(guò)程205b;建立單元36用于支持節(jié)點(diǎn)21執(zhí)行圖4中的過(guò)程103;執(zhí)行單元37用于支持節(jié)點(diǎn)21執(zhí)行圖4中的過(guò)程104和106。其中,上述方法實(shí)施例涉及的各步驟的所有相關(guān)內(nèi)容均可以援引到對(duì)應(yīng)功能模塊的功能描述,在此不再贅述。
在采用集成的單元的情況下,圖8示出了上述實(shí)施例中所涉及的節(jié)點(diǎn)21的一種可能的結(jié)構(gòu)示意圖。節(jié)點(diǎn)21包括:處理模塊1302和通信模塊1303。處理模塊1302用于對(duì)節(jié)點(diǎn)21的動(dòng)作進(jìn)行控制管理,例如,處理模塊1302用于支持節(jié)點(diǎn)21執(zhí)行圖4中的過(guò)程101-106,圖6中的過(guò)程201-205b,和/或用于本文所描述的技術(shù)的其它過(guò)程。通信模塊1303用于支持節(jié)點(diǎn)21與其他網(wǎng)絡(luò)實(shí)體的通信,例如與圖1-圖3中示出的功能模塊或網(wǎng)絡(luò)實(shí)體之間的通信。節(jié)點(diǎn)21還可以包括存儲(chǔ)模塊1301,用于存儲(chǔ)節(jié)點(diǎn)21的程序代碼和數(shù)據(jù)。
其中,處理模塊1302可以是處理器或控制器,例如可以是中央處理器(Central Processing Unit,CPU),通用處理器,數(shù)字信號(hào)處理器(Digital Signal Processor,DSP),專用集成電路(Application-Specific Integrated Circuit,ASIC),現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)或者其他可編程邏輯器件、晶體管邏輯器件、硬件部件或者其任意組合。其可以實(shí)現(xiàn)或執(zhí)行結(jié)合本發(fā)明公開內(nèi)容所描述的各種示例性的邏輯方框,模塊和電路。所述處理器也可以是實(shí)現(xiàn)計(jì)算功能的組合,例如包含一個(gè)或多個(gè)微處理器組合,DSP和微處理器的組合等等。通信模塊1303可以是收發(fā)器、收發(fā)電路或通信接口等。存儲(chǔ)模塊1301可以是存儲(chǔ)器。
當(dāng)處理模塊1302為處理器,通信模塊1303為通信接口,存儲(chǔ)模塊1301為存儲(chǔ)器時(shí),本發(fā)明實(shí)施例所涉及的節(jié)點(diǎn)可以為圖9所示的節(jié)點(diǎn)21。
參閱圖9所示,該節(jié)點(diǎn)21包括:處理器1312、通信接口1313、存儲(chǔ)器1311以及總線1314。其中,通信接口1313、處理器1312以及存儲(chǔ)器1311通過(guò)總線1314相互連接;總線1314可以是外設(shè)部件互連標(biāo)準(zhǔn)(Peripheral Component Interconnect,PCI)總線或擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(Extended Industry Standard Architecture,EISA)總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖9中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。
結(jié)合本發(fā)明公開內(nèi)容所描述的方法或者算法的步驟可以硬件的方式來(lái)實(shí)現(xiàn),也可以是由處理器執(zhí)行軟件指令的方式來(lái)實(shí)現(xiàn)。軟件指令可以由相應(yīng)的軟件模塊組成,軟件模塊可以被存放于隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)、閃存、只讀存儲(chǔ)器(Read Only Memory,ROM)、可擦除可編程只讀存儲(chǔ)器(Erasable Programmable ROM,EPROM)、電可擦可編程只讀存儲(chǔ)器(Electrically EPROM,EEPROM)、寄存器、硬盤、移動(dòng)硬盤、只讀光盤(CD-ROM)或者本領(lǐng)域熟知的任何其它形式的存儲(chǔ)介質(zhì)中。一種示例性的存儲(chǔ)介質(zhì)耦合至處理器,從而使處理器能夠從該存儲(chǔ)介質(zhì)讀取信息,且可向該存儲(chǔ)介質(zhì)寫入信息。當(dāng)然,存儲(chǔ)介質(zhì)也可以是處理器的組成部分。處理器和存儲(chǔ)介質(zhì)可以位于ASIC中。另外,該ASIC可以位于核心網(wǎng)接口設(shè)備中。當(dāng)然,處理器和存儲(chǔ)介質(zhì)也可以作為分立組件存在于核心網(wǎng)接口設(shè)備中。
本領(lǐng)域技術(shù)人員應(yīng)該可以意識(shí)到,在上述一個(gè)或多個(gè)示例中,本發(fā)明所描述的功能可以用硬件、軟件、固件或它們的任意組合來(lái)實(shí)現(xiàn)。當(dāng)使用軟件實(shí)現(xiàn)時(shí),可以將這些功能存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中或者作為計(jì)算機(jī)可讀介質(zhì)上的一個(gè)或多個(gè)指令或代碼進(jìn)行傳輸。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì),其中通信介質(zhì)包括便于從一個(gè)地方向另一個(gè)地方傳送計(jì)算機(jī)程序的任何介質(zhì)。存儲(chǔ)介質(zhì)可以是通用或?qū)S糜?jì)算機(jī)能夠存取的任何可用介質(zhì)。
以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的技術(shù)方案的基礎(chǔ)之上,所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包括在本發(fā)明的保護(hù)范圍之內(nèi)。