專利名稱:一種網(wǎng)絡(luò)視頻錄像集群系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)視頻錄像集群系統(tǒng)。
背景技術(shù):
在網(wǎng)絡(luò)視頻監(jiān)控市場(chǎng)高速發(fā)展下,用戶對(duì)監(jiān)控高清化、網(wǎng)絡(luò)化、大規(guī)模接入以及可靠性保證的需求不斷增強(qiáng),很多項(xiàng)目都需要接入幾千上萬(wàn)路的前端攝像頭。
網(wǎng)絡(luò)視頻錄像機(jī)(NETWORK VIDEO RECORDER,簡(jiǎn)稱NVR)是一個(gè)安防監(jiān)控網(wǎng)路中的核心設(shè)備。傳統(tǒng)的單點(diǎn)NVR方案的安防監(jiān)控網(wǎng)絡(luò)通常由一臺(tái)NVR和若干個(gè)甚至幾百個(gè)、上千個(gè)網(wǎng)絡(luò)攝像機(jī)組成。前端監(jiān)控點(diǎn)上的網(wǎng)絡(luò)攝像機(jī)產(chǎn)生的模擬視頻和模擬音頻信號(hào),經(jīng)過(guò)其內(nèi)置的視頻、音頻編碼器的數(shù)字化處理后,以IP數(shù)據(jù)包的形式在網(wǎng)絡(luò)上傳輸。NVR在收到 IP數(shù)據(jù)包后,可對(duì)視頻、音頻進(jìn)行錄像、存儲(chǔ)或轉(zhuǎn)發(fā),實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)攝像機(jī)的管理。
但是,傳統(tǒng)的單點(diǎn)NVR方案存在著管理配置困難,單點(diǎn)故障,錄像易丟失等若干不可克服的弱點(diǎn)。于是產(chǎn)生了一種主從集群化拓?fù)浣Y(jié)構(gòu)的NVR解決方案。主從集群化方案由一個(gè)主NVR管理器、一個(gè)或若干備用NVR管理器、多個(gè)單點(diǎn)NVR,通過(guò)IP網(wǎng)絡(luò)連接組成。 雖然主從集群化方案可以解決傳統(tǒng)單點(diǎn)NVR方案中的一些問(wèn)題,但仍然存在著很多技術(shù)缺陷。例如NVR管理節(jié)點(diǎn)的故障切換時(shí)產(chǎn)生的延時(shí)和腦分裂;主從管理節(jié)點(diǎn)之間的配置不同步;多個(gè)管理節(jié)點(diǎn)的開(kāi)銷增加方案成本;NVR單點(diǎn)故障導(dǎo)致的錄像丟失;管理節(jié)點(diǎn)的性能和訪問(wèn)量瓶頸等等。
因此,亟需一種解決方案來(lái)解決上述問(wèn)題。發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題之一是需要提供一種不受到主節(jié)點(diǎn)或其他節(jié)點(diǎn)宕機(jī)而產(chǎn)生影響的網(wǎng)絡(luò)視頻錄像集群系統(tǒng)。
為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種網(wǎng)絡(luò)視頻錄像集群系統(tǒng),包括多個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)、多個(gè)IP攝像機(jī)、多個(gè)客戶端和IP網(wǎng)絡(luò),其中,
各個(gè)IP攝像機(jī)接入至所述IP網(wǎng)絡(luò)中,用于產(chǎn)生音頻視頻碼流等相關(guān)信息;各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)相互連接,并接入至所述IP網(wǎng)絡(luò)中以構(gòu)成一無(wú)中心節(jié)點(diǎn)全連通拓?fù)浣Y(jié)構(gòu)的集群系統(tǒng);各個(gè)客戶端通過(guò)所述IP網(wǎng)絡(luò)與各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)連接,其向所述各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)發(fā)送請(qǐng)求;所述各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之間相互協(xié)同工作以實(shí)現(xiàn)各個(gè)客戶端的請(qǐng)求,其中,所述各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)保存集群內(nèi)所有網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的信息。
進(jìn)一步,該網(wǎng)絡(luò)視頻錄像集群系統(tǒng)還包括,在檢測(cè)到任一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的信息發(fā)生變化時(shí),該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)向其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)發(fā)布更改消息,其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)根據(jù)所述更改信息更新相應(yīng)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的信息,其中,所述更改消息包括信息發(fā)生變化的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的IP地址、發(fā)生變化的信息、時(shí)間戳和消息校驗(yàn)值。
進(jìn)一步,該網(wǎng)絡(luò)視頻錄像集群系統(tǒng)還包括,在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于添加一 IP攝像機(jī)的請(qǐng)求時(shí),該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)查詢當(dāng)前所述集群系統(tǒng)內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)已接管的IP攝像機(jī)的數(shù)量,將所述關(guān)于添加一 IP攝像機(jī)的請(qǐng)求發(fā)送至已接管的IP攝像機(jī)的數(shù)量最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一以完成對(duì)一 IP攝像機(jī)的添加。
進(jìn)一步,該網(wǎng)絡(luò)視頻錄像集群系統(tǒng)還包括,在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于對(duì)一未被接管的IP攝像機(jī)進(jìn)行錄像的請(qǐng)求時(shí),該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)計(jì)算當(dāng)前所述集群系統(tǒng)內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值,將所述關(guān)于對(duì)一未被接管的IP攝像機(jī)進(jìn)行錄像的請(qǐng)求發(fā)送至負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一以完成對(duì)該IP攝像機(jī)的錄像,其中,所述負(fù)載值是根據(jù)各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)所錄像的音頻視頻碼流的大小來(lái)得到的。
進(jìn)一步,該網(wǎng)絡(luò)視頻錄像集群系統(tǒng)還包括,在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于對(duì)一已被接管的IP攝像機(jī)進(jìn)行錄像的請(qǐng)求時(shí),該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)查詢到接管該IP 攝像機(jī)的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn),將所述請(qǐng)求發(fā)送至接管該IP攝像機(jī)的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)中以完成對(duì)該IP攝像機(jī)的錄像,并將錄像后的錄像文件存儲(chǔ)至用于存儲(chǔ)所有錄像文件的存儲(chǔ)池中;同時(shí),該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)計(jì)算當(dāng)前所述集群內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值,控制負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一對(duì)該IP攝像機(jī)進(jìn)行錄像以得到備份錄像文件。
進(jìn)一步,該網(wǎng)絡(luò)視頻錄像集群系統(tǒng)還包括,在檢測(cè)到一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)發(fā)生故障時(shí),該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)計(jì)算當(dāng)前所述集群內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值,將當(dāng)前負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一作為接管發(fā)生故障的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn),并向其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)發(fā)送失敗接管任務(wù)通知。
進(jìn)一步,該網(wǎng)絡(luò)視頻錄像集群系統(tǒng)還包括,通過(guò)以下步驟來(lái)檢測(cè)一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)是否發(fā)生故障,所述集群中每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)在每個(gè)設(shè)定時(shí)間向其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)廣播心跳消息、來(lái)維持各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之間的心跳連接;若一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的心跳連接失效時(shí),其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)向該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)進(jìn)行故障確認(rèn)請(qǐng)求,若收到該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)對(duì)所述故障確認(rèn)請(qǐng)求的回應(yīng),則判定其無(wú)故障存在,否則, 判定其發(fā)生故障。
進(jìn)一步,該網(wǎng)絡(luò)視頻錄像集群系統(tǒng)還包括,在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于搜索一 IP攝像機(jī)在某一時(shí)刻的視頻音頻碼流的請(qǐng)求時(shí),該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)計(jì)算當(dāng)前所述集群內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值,將所述關(guān)于搜索一 IP攝像機(jī)在某一時(shí)刻的視頻音頻碼流的請(qǐng)求發(fā)送至負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一;所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一向其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)發(fā)送該請(qǐng)求;其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)對(duì)自身所保存的錄像文件進(jìn)行搜索并將搜索結(jié)果返回給所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一;所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一將搜索結(jié)果進(jìn)行合并以獲得與該IP攝像機(jī)某一時(shí)刻的視頻音頻碼流相對(duì)應(yīng)的錄像文件和網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn);所述客戶端根據(jù)與該 IP攝像機(jī)某一時(shí)刻的視頻音頻碼流相對(duì)應(yīng)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的IP地址獲取所述錄像文件。
進(jìn)一步,該網(wǎng)絡(luò)視頻錄像集群系統(tǒng)還包括,在檢測(cè)到一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值超過(guò)所述網(wǎng)絡(luò)視頻錄像監(jiān)控系統(tǒng)平均負(fù)載的設(shè)定倍數(shù)時(shí),控制所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一來(lái)接管該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的部分負(fù)載。
進(jìn)一步,該網(wǎng)絡(luò)視頻錄像集群系統(tǒng)還包括,在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于播放一 IP攝像機(jī)的實(shí)時(shí)視頻音頻碼流的請(qǐng)求時(shí),該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)根據(jù)所述集群6內(nèi)所有網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的信息,查找到接管該IP攝像機(jī)的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn),并向其請(qǐng)求轉(zhuǎn)發(fā)實(shí)時(shí)視頻音頻碼流,然后向所述客戶端轉(zhuǎn)發(fā)接管該IP攝像機(jī)的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的地址。
進(jìn)一步,該網(wǎng)絡(luò)視頻錄像集群系統(tǒng)還包括,在用戶通過(guò)所述客戶端登陸到一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)時(shí),判斷所述客戶端是否存在重定向通知,若判斷結(jié)果為是,則將該用戶轉(zhuǎn)到所述重定向通知中的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)中登錄,否則,進(jìn)行以下步驟判斷登錄到所述該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的用戶數(shù)量是否超出所述網(wǎng)絡(luò)視頻錄像監(jiān)控系統(tǒng)用戶數(shù)均值的設(shè)定倍數(shù), 且該用戶數(shù)均值大于設(shè)定數(shù)值,若判斷結(jié)果為是,則該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)選擇在所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn),將該用戶轉(zhuǎn)到所選擇的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)中登錄。
進(jìn)一步,該網(wǎng)絡(luò)視頻錄像集群系統(tǒng)還包括,在所述網(wǎng)絡(luò)視頻錄像集群系統(tǒng)工作運(yùn)行之前,各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)向其所在的網(wǎng)絡(luò)廣播心跳消息;各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)接收到與之相鄰的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的心跳消息后,判斷發(fā)送心跳消息的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)是否在自身的信息列表中,若不存在,則發(fā)送獲取請(qǐng)求到發(fā)送該心跳消息的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)中以獲得該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的信息,其中,所述心跳消息包括所述網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)自身的IP地址、存儲(chǔ)容量信息、時(shí)間戳和消息校驗(yàn)值。
與現(xiàn)有技術(shù)相比,本發(fā)明的一個(gè)或多個(gè)實(shí)施例可以具有如下優(yōu)點(diǎn)
本發(fā)明提供的網(wǎng)絡(luò)視頻錄像集群系統(tǒng),包括多個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)。各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)通過(guò)信息交流協(xié)同工作,完成接管IP攝像機(jī)(簡(jiǎn)稱IPC)、錄像、備份、回放、負(fù)載均衡、失敗接管,以及接收客戶端請(qǐng)求并返回結(jié)果等功能。對(duì)于客戶端,其登錄任何一臺(tái)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn),都可以查詢獲得整個(gè)集群的信息和錄像,使其感覺(jué)不到獨(dú)立的網(wǎng)絡(luò)視頻錄像機(jī)的存在。
本發(fā)明解決了單臺(tái)網(wǎng)絡(luò)視頻錄像機(jī)(NVR)性能瓶頸,產(chǎn)生的錄像不會(huì)隨某一個(gè)設(shè)備的故障而丟失;同時(shí)也解決了現(xiàn)有技術(shù)中,主從集群化導(dǎo)致的主節(jié)點(diǎn)單點(diǎn)性能瓶頸,由于消除了中心點(diǎn),使得集群不會(huì)受主節(jié)點(diǎn)的宕機(jī)而產(chǎn)生的各種影響,進(jìn)一步,整個(gè)集群中任一節(jié)點(diǎn)發(fā)生故障都不會(huì)影響集群的運(yùn)行,提高了系統(tǒng)可靠性和穩(wěn)定性。
本發(fā)明提供不停機(jī)的情況下單個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的動(dòng)態(tài)擴(kuò)容;同時(shí)在保持設(shè)備數(shù)量不變的前提下,僅通過(guò)增加網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的存儲(chǔ)空間,即可實(shí)現(xiàn)整個(gè)集群存儲(chǔ)空間的擴(kuò)容,節(jié)約了系統(tǒng)擴(kuò)容成本,提高了系統(tǒng)的擴(kuò)展性和可管理性。進(jìn)一步,由于無(wú)中心節(jié)點(diǎn),集群擴(kuò)容不受中心節(jié)點(diǎn)性能限制,使得系統(tǒng)容量大幅提升至PB級(jí)別。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書中闡述,并且,部分地從說(shuō)明書中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在說(shuō)明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書的一部分,與本發(fā)明的實(shí)施例共同用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中
圖I是根據(jù)本發(fā)明實(shí)施例的網(wǎng)絡(luò)視頻錄像集群系統(tǒng)的結(jié)構(gòu)示意圖2是根據(jù)本發(fā)明實(shí)施例的網(wǎng)絡(luò)視頻錄像集群系統(tǒng)的用戶分流的處理流程示意圖。
具體實(shí)施方式
以下將結(jié)合附圖及實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施方式,借此對(duì)本發(fā)明如何應(yīng)用技術(shù)手段來(lái)解決技術(shù)問(wèn)題,并達(dá)成技術(shù)效果的實(shí)現(xiàn)過(guò)程能充分理解并據(jù)以實(shí)施。需要說(shuō)明的是,只要不構(gòu)成沖突,本發(fā)明中的各個(gè)實(shí)施例以及各實(shí)施例中的各個(gè)特征可以相互結(jié)合, 所形成的技術(shù)方案均在本發(fā)明的保護(hù)范圍之內(nèi)。
另外,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖I是根據(jù)本發(fā)明實(shí)施例的網(wǎng)絡(luò)視頻錄像集群系統(tǒng)的結(jié)構(gòu)示意圖,下面參考圖I 來(lái)詳細(xì)說(shuō)明本系統(tǒng)的各個(gè)組成部分以及各個(gè)部分的功能。
如圖I所示,該系統(tǒng)(可簡(jiǎn)稱NVCR系統(tǒng))包括多個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)(以下簡(jiǎn)稱 NVCR節(jié)點(diǎn)),多個(gè)IP攝像機(jī)(以下簡(jiǎn)稱IPC),多個(gè)客戶端,以及IP網(wǎng)絡(luò)。其中,各個(gè)NVCR節(jié)點(diǎn)共同接入IP網(wǎng)絡(luò)中,各個(gè)NVCR節(jié)點(diǎn)之間相互連接,形成一個(gè)無(wú)中心節(jié)點(diǎn)全連通網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的集群系統(tǒng)。各IPC接入至IP網(wǎng)絡(luò)中,用于產(chǎn)生音頻視頻碼流等相關(guān)信息。各客戶端通過(guò)IP網(wǎng)絡(luò)與各NVCR節(jié)點(diǎn)相連。各客戶端提供用戶使用認(rèn)證與各NVCR節(jié)點(diǎn)建立連接,向各個(gè)NVCR節(jié)點(diǎn)發(fā)送請(qǐng)求。通過(guò)發(fā)送的請(qǐng)求可以從各NVCR節(jié)點(diǎn)上獲取存儲(chǔ)的音頻視頻流, 或者通過(guò)各NVCR,直接獲取各IPC產(chǎn)生的即時(shí)音頻視頻流。
需要說(shuō)明的是,本發(fā)明實(shí)施例中,客戶端以WEB方式運(yùn)行于用戶的瀏覽器中。IPC 須支持ONVIF協(xié)議或RTSP協(xié)議。各個(gè)NVCR節(jié)點(diǎn)保存集群內(nèi)所有NVCR節(jié)點(diǎn)的信息。在NVCR 節(jié)點(diǎn)接受客戶端的請(qǐng)求后,各個(gè)NVCR節(jié)點(diǎn)之間相互協(xié)同工作以實(shí)現(xiàn)各個(gè)客戶端的請(qǐng)求,并返回相應(yīng)的處理結(jié)果。根據(jù)客戶端的指令,可對(duì)IPC產(chǎn)生的音頻視頻流進(jìn)行多存儲(chǔ)點(diǎn)備份錄像,也可轉(zhuǎn)發(fā)IPC的實(shí)時(shí)音頻視頻流,通過(guò)轉(zhuǎn)發(fā),突破IPC自身的連接限制。
下面來(lái)詳細(xì)說(shuō)明一下關(guān)于本系統(tǒng)的工作流程。
(I)在網(wǎng)絡(luò)視頻錄像集群系統(tǒng)進(jìn)行工作運(yùn)行之前,對(duì)該系統(tǒng)進(jìn)行初始化。
具體地,各NVCR節(jié)點(diǎn)接入IP網(wǎng)絡(luò)后,各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)向其所在的網(wǎng)絡(luò)廣播心跳消息以宣告自身存在。其中,心跳消息包括NVCR節(jié)點(diǎn)自身的IP地址、存儲(chǔ)容量、時(shí)間戳和消息校驗(yàn)值等信息。
各NVCR節(jié)點(diǎn)接收到與之相鄰的NVCR節(jié)點(diǎn)發(fā)來(lái)的廣播包(即心跳消息)后,先判斷發(fā)送心跳消息的NVCR節(jié)點(diǎn)是否已經(jīng)在自身的信息列表中,若存在則保持靜默;反之則發(fā)送獲取請(qǐng)求到發(fā)送該心跳消息的NVCR節(jié)點(diǎn)中以獲得該NVCR節(jié)點(diǎn)的信息,并根據(jù)獲取到的信息來(lái)更新本地列表。待各節(jié)點(diǎn)信息均收集更新完畢后,初始化結(jié)束,系統(tǒng)開(kāi)始運(yùn)行。
(2)在網(wǎng)絡(luò)視頻錄像集群系統(tǒng)工作運(yùn)行后,各NVCR節(jié)點(diǎn)通過(guò)相互間發(fā)送消息來(lái)維護(hù)整個(gè)系統(tǒng)的完整性,以使得各個(gè)NVCR節(jié)點(diǎn)的信息同步。
具體的,當(dāng)檢測(cè)到任一 NVCR節(jié)點(diǎn)上的信息發(fā)生變化時(shí),該NVCR節(jié)點(diǎn)向其他NVCR 節(jié)點(diǎn)發(fā)布更改消息。例如接管IPC發(fā)生改變、錄像的IPC發(fā)生改變等,可以通過(guò)向IP網(wǎng)絡(luò)廣播發(fā)送更改消息,其他NVCR節(jié)點(diǎn)根據(jù)更改信息更新相應(yīng)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的信息。更改消息包含信息發(fā)生變化的NVCR節(jié)點(diǎn)的IP地址、發(fā)生變化的信息、信息改變的具體內(nèi)容、時(shí)間戳和消息校驗(yàn)值。
例如,接管IPC發(fā)生改變時(shí),應(yīng)包含IPC的IP地址、IPC管理地址、視頻音頻轉(zhuǎn)發(fā)地址。例如,錄像的IPC發(fā)生改變時(shí),應(yīng)包含錄像IPC的IP地址、錄像的起止時(shí)間。通過(guò)上述方法,能夠使其他NVCR節(jié)點(diǎn)及時(shí)修改記錄,保持系統(tǒng)的一致性。
需要說(shuō)明的是,為了保持系統(tǒng)的一致性,每隔設(shè)定時(shí)間,在本實(shí)施例中至多每隔一分鐘,各個(gè)NVCR節(jié)點(diǎn)均廣播發(fā)送活躍消息,表明自身仍在工作正常。一般基本的活躍消息只包含自身IP地址,而心跳消息和更改消息視為擴(kuò)展的活躍消息。
需要注意的是,以上所述的所有消息還包括發(fā)送消息的NVCR節(jié)點(diǎn)自身系統(tǒng)的時(shí)間戳以及消息校驗(yàn)值。由于發(fā)布信息時(shí)均加入自身系統(tǒng)的時(shí)間戳,保證在其他NVCR節(jié)點(diǎn)收到同一信息源的多條信息時(shí),記錄最新的信息,不同消息源的時(shí)間戳并不需要預(yù)同步,各 NVCR節(jié)點(diǎn)保證自身系統(tǒng)時(shí)間在集群中運(yùn)行時(shí)不發(fā)生調(diào)整,即可保證同一消息源的消息在時(shí)間軸上的一致性。任何NVCR節(jié)點(diǎn)在收到同一消息源關(guān)于同一內(nèi)容的多個(gè)消息時(shí),根據(jù)時(shí)間戳抽取最新的消息作記錄。發(fā)布信息時(shí)均加入信息的校驗(yàn)值,保證其他NVCR節(jié)點(diǎn)記錄正確的信息。當(dāng)一個(gè)NVCR的信息發(fā)生改變后,立即通過(guò)廣播通知其他所有NVCR修改記錄信息; 任何必要的時(shí)刻,當(dāng)一個(gè)NVCR需要獲取或確認(rèn)另一個(gè)NVCR的信息時(shí),立即通過(guò)點(diǎn)對(duì)點(diǎn)通信交換信息。
通過(guò)上述步驟,使得各NVCR節(jié)點(diǎn)在邏輯上和功能上相同,在每一個(gè)NVCR節(jié)點(diǎn)上, 均保存集群內(nèi)所有NVCR節(jié)點(diǎn)的信息,以此完成信息同步,共同維護(hù)整個(gè)集群信息的完整性,不存在中心節(jié)點(diǎn)或與之類似的具有管理性功能的節(jié)點(diǎn)。每個(gè)NVCR節(jié)點(diǎn)均對(duì)關(guān)于自身的信息負(fù)責(zé),并通過(guò)廣播通知或點(diǎn)對(duì)點(diǎn)通信方式向其他NVCR節(jié)點(diǎn)發(fā)布信息。
(3)在用戶通過(guò)客戶端登錄某個(gè)NVCR節(jié)點(diǎn)時(shí),對(duì)用戶進(jìn)行分流。
在用戶通過(guò)客戶端登陸到一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)時(shí),判斷客戶端是否存在重定向通知,若判斷結(jié)果為是,則將該用戶轉(zhuǎn)到重定向通知中的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)中登錄,否則,進(jìn)行以下步驟判斷登錄到該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的用戶數(shù)量是否超出網(wǎng)絡(luò)視頻錄像監(jiān)控系統(tǒng)用戶數(shù)均值的設(shè)定倍數(shù),且該用戶數(shù)均值大于設(shè)定數(shù)值,若判斷結(jié)果為是,則該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)選擇在負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn),將該用戶轉(zhuǎn)到所選擇的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)中登錄。
具體地,圖2是本發(fā)明實(shí)施例的網(wǎng)絡(luò)視頻錄像集群系統(tǒng)的用戶分流處理流程示意圖,如圖2所示,首先客戶端判斷是否存在NVCR節(jié)點(diǎn)的重定向通知,若判斷結(jié)果為是,則設(shè)置登錄請(qǐng)求(Login請(qǐng)求)中IP=B (B存在于A返回的重定向通知中),重定向(Redirect) =true ;若不存在,貝U設(shè)置Login請(qǐng)求中IP=A,重定向(Redirect)=false。NVCR節(jié)點(diǎn)收到此 Login請(qǐng)求后,先檢查重定向,若為false,則執(zhí)行登錄數(shù)(Login Number)檢查流程;若為 true,則跳過(guò)Login Number檢查流程。
在Login Number檢查階段,當(dāng)該NVCR節(jié)點(diǎn)自身登錄的用戶數(shù)(Login Number)超過(guò)系統(tǒng)所有NVCR節(jié)點(diǎn)均值兩倍(即超過(guò)2 Login Number),且此均值(Login Number )大于0. 5時(shí),該NVCR節(jié)點(diǎn)從當(dāng)前具有最少用戶數(shù)的NVCR節(jié)點(diǎn)中隨機(jī)選擇一個(gè)NVCR節(jié)點(diǎn)作為設(shè)備B,將包含設(shè)備B的IP地址的重定向通知返回給客戶端??蛻舳私邮盏紸返回的重定向通知后,重復(fù)最開(kāi)始的流程并跳轉(zhuǎn)到設(shè)備B進(jìn)行登錄。
反之,若該NVCR節(jié)點(diǎn)自身登錄的用戶數(shù)沒(méi)有超過(guò)系統(tǒng)所有NVCR均值兩倍時(shí), NVCR節(jié)點(diǎn)確認(rèn)此Login請(qǐng)求,將自身登錄用戶數(shù)加1,并將包含客戶端IP地址的更改消息(Modify消息)廣播,通知其他NVCR節(jié)點(diǎn)修改記錄。此后,與客戶端進(jìn)行交互,響應(yīng)客戶端的其他請(qǐng)求。
通過(guò)上述步驟能夠?qū)崿F(xiàn)用戶分流,克服單點(diǎn)登錄瓶頸,提高系統(tǒng)性能。
(4)客戶端登錄某個(gè)NVCR節(jié)點(diǎn)A后,發(fā)起添加IPC任務(wù)或?qū)δ硞€(gè)IP攝像機(jī)進(jìn)行錄像的任務(wù)時(shí),實(shí)現(xiàn)均衡分配。
具體地,在執(zhí)行上述任務(wù)時(shí),節(jié)點(diǎn)A向IP網(wǎng)絡(luò)發(fā)送搜索廣播消息,接收到搜索廣播消息的IPC回應(yīng)廣播消息,節(jié)點(diǎn)A收集IPC回應(yīng)信息,獲取所有IPC的列表,此方法與單臺(tái) NVR類似。通過(guò)比較節(jié)點(diǎn)A自身得到的所有NVCR節(jié)點(diǎn)記錄信息和所有IPC的列表,區(qū)分顯示尚未被接管的IPC和已經(jīng)被接管的IPC,返回給客戶端。
但是,需要說(shuō)明的是,對(duì)客戶端隱藏IPC與NVCR節(jié)點(diǎn)的映射關(guān)系。這樣,該系統(tǒng)會(huì)根據(jù)各節(jié)點(diǎn)的運(yùn)行狀況,動(dòng)態(tài)地改變IPC與NVCR節(jié)點(diǎn)的映射關(guān)系,而用戶只需要關(guān)心整個(gè) NVCR系統(tǒng)的負(fù)載和性能狀況,無(wú)需再關(guān)心每個(gè)NVCR節(jié)點(diǎn)的具體狀況??蛻舳税l(fā)起接管某個(gè) IPC的任務(wù)后,節(jié)點(diǎn)A檢索其自身得到的所有NVCR節(jié)點(diǎn)記錄信息,將接管任務(wù)均衡轉(zhuǎn)移給接管IPC數(shù)量最少的NVCR節(jié)點(diǎn)B,此接管IPC的請(qǐng)求包含IPC的IP地址和管理地址。節(jié)點(diǎn)B 將按照管理地址將IPC接管,并按照步驟(2)的方法,廣播通知新增接管的IPC。
更具體地,在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于添加一 IP攝像機(jī)的請(qǐng)求時(shí), 首先得到集群內(nèi)每個(gè)NVCR節(jié)點(diǎn)已接管的IPC的數(shù)量的集合N= In1, n2, n3. . . },單獨(dú)計(jì)算出集合N的最小值n=min In1, n2, n3. . . ,將關(guān)于添加一 IP攝像機(jī)的請(qǐng)求發(fā)送至已接管的IP攝像機(jī)的數(shù)量最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一中。
另外,在出現(xiàn)以下情況時(shí)也需要執(zhí)行均衡分配。
在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于對(duì)一未被接管的IP攝像機(jī)進(jìn)行錄像的請(qǐng)求時(shí),該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)計(jì)算當(dāng)前集群系統(tǒng)內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值,將關(guān)于對(duì)一未被接管的IP攝像機(jī)進(jìn)行錄像的請(qǐng)求至負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一以完成對(duì)該IP攝像機(jī)的錄像,其中,負(fù)載值是根據(jù)各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)所錄像的音頻視頻碼流的大小來(lái)得到的。
在本發(fā)明實(shí)施例中,可以基于碼率M,接管IPC路數(shù)η、錄像天數(shù)D、NVCR節(jié)點(diǎn)存儲(chǔ)容量S等錄像參數(shù)來(lái)計(jì)算得到負(fù)載P,計(jì)算公式為P=M*n*D/S。
在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于對(duì)一已被接管的IP攝像機(jī)進(jìn)行錄像的請(qǐng)求,該NVCR節(jié)點(diǎn)查詢到接管該IP攝像機(jī)的NVCR節(jié)點(diǎn),將關(guān)于對(duì)一已被接管的IP攝像機(jī)進(jìn)行錄像的請(qǐng)求、發(fā)送至接管該IP攝像機(jī)的NVCR節(jié)點(diǎn)中以完成對(duì)該IP攝像機(jī)的錄像,并將錄像后的錄像文件存儲(chǔ)至用于存儲(chǔ)所有錄像文件的存儲(chǔ)池中;同時(shí),該NVCR節(jié)點(diǎn)計(jì)算當(dāng)前集群內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值,控制負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一對(duì)該IP攝像機(jī)進(jìn)行錄像以得到備份錄像文件。
更具體地,得到集群內(nèi)所有NVCR節(jié)點(diǎn)當(dāng)前時(shí)刻的錄像信息,單獨(dú)計(jì)算集群內(nèi)每個(gè) NVCR節(jié)點(diǎn)的負(fù)載的集合L= {11; I2, I3. ..},1= Σ m,其中I是各NVCR節(jié)點(diǎn)的負(fù)載量,m是各 NVCR節(jié)點(diǎn)正在錄像的每天碼流的大小。根據(jù)計(jì)算集合L的最小值I=IiiinIl1, I2, I3. . . },將其收到的某個(gè)IPC進(jìn)行錄像的請(qǐng)求轉(zhuǎn)移到此最小值對(duì)應(yīng)的NVCR節(jié)點(diǎn)。發(fā)生如上所述的IPC 均衡分配后,發(fā)生改變的NVCR節(jié)點(diǎn)均按照步驟(2)進(jìn)行集群信息同步。
需要說(shuō)明的是,在統(tǒng)一存儲(chǔ)池規(guī)劃好后,客戶端登錄的NVCR節(jié)點(diǎn)A,對(duì)已經(jīng)被接管的IPC發(fā)起錄像任務(wù)。還提供雙存儲(chǔ)點(diǎn)實(shí)時(shí)備份的錄像方法。任何一個(gè)NVCR節(jié)點(diǎn)對(duì)其接管的某一個(gè)IP攝像機(jī)產(chǎn)生的音頻視頻流進(jìn)行錄像時(shí),會(huì)請(qǐng)求另一臺(tái)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)同時(shí)錄像。
如節(jié)點(diǎn)A并不是接管IPC的節(jié)點(diǎn),則節(jié)點(diǎn)A通知接管該IPC的NVCR節(jié)點(diǎn)B進(jìn)行錄像,錄像任務(wù)的請(qǐng)求應(yīng)包含IPC的IP地址、錄像的起止時(shí)間錄像通道等錄像信息。錄像采用統(tǒng)一的存儲(chǔ)池,即所有用于存儲(chǔ)錄像文件的磁盤陣列虛擬化為一個(gè)統(tǒng)一的存儲(chǔ)池,具有全局統(tǒng)一命名空間,所有節(jié)點(diǎn)共享此存儲(chǔ)池來(lái)保存錄像文件。同時(shí)節(jié)點(diǎn)A通過(guò)比較步驟I 得到的所有NVCR節(jié)點(diǎn)記錄信息,根據(jù)步驟(4)的負(fù)載均衡算法,通知錄像負(fù)載最小的NVCR 節(jié)點(diǎn)C同時(shí)對(duì)該IPC進(jìn)行備份錄像。由于節(jié)點(diǎn)B和節(jié)點(diǎn)C雙備份錄像,保存了副本,節(jié)點(diǎn)B 或節(jié)點(diǎn)C其中任一節(jié)點(diǎn)發(fā)生故障,也可另外一個(gè)未發(fā)生故障的節(jié)點(diǎn)進(jìn)行恢復(fù),保證錄像文件的安全可靠。涉及的NVCR節(jié)點(diǎn)在改變發(fā)生后均按步驟(2)廣播信息通知其他NVCR。
由于在本發(fā)明實(shí)施例中,任何一個(gè)NVCR節(jié)點(diǎn)均每隔一分鐘檢查其得到的所有 NVCR節(jié)點(diǎn)記錄信息,計(jì)算每個(gè)NVCR節(jié)點(diǎn)的錄像負(fù)載。如檢測(cè)到一 NVCR節(jié)點(diǎn)C的負(fù)載值超過(guò)系統(tǒng)平均負(fù)載的設(shè)定倍數(shù)(例如兩倍)時(shí),通知節(jié)點(diǎn)C執(zhí)行錄像負(fù)載均衡任務(wù)。節(jié)點(diǎn)C接到錄像負(fù)載均衡任務(wù)后,立即檢查其自身得到的所有NVCR節(jié)點(diǎn)記錄信息,核實(shí)自身負(fù)載是否超過(guò)系統(tǒng)平均負(fù)載的兩倍,若屬實(shí),則控制負(fù)載值最小的NVCR節(jié)點(diǎn)D來(lái)接管節(jié)點(diǎn)C的部分負(fù)載,并按照步驟(2)的信息同步算法廣播通知錄像負(fù)載的變化。
(5)在某一個(gè)NVCR節(jié)點(diǎn)發(fā)生故障時(shí),進(jìn)行失敗接管和故障轉(zhuǎn)移處理。
集群中每個(gè)NVCR節(jié)點(diǎn)在每個(gè)設(shè)定時(shí)間向其他NVCR節(jié)點(diǎn)廣播心跳消息、來(lái)維持各個(gè)NVCR節(jié)點(diǎn)之間的心跳連接;若一 NVCR節(jié)點(diǎn)的心跳連接失效時(shí),其他NVCR節(jié)點(diǎn)向該NVCR 節(jié)點(diǎn)進(jìn)行故障確認(rèn)請(qǐng)求,若收到該NVCR節(jié)點(diǎn)對(duì)故障確認(rèn)請(qǐng)求的回應(yīng),則判定其無(wú)故障存在,否則,判定其發(fā)生故障。
在檢測(cè)到一 NVCR節(jié)點(diǎn)發(fā)生故障時(shí),該NVCR節(jié)點(diǎn)計(jì)算當(dāng)前集群內(nèi)的每個(gè)NVCR節(jié)點(diǎn)的負(fù)載值,將當(dāng)前負(fù)載值最小的NVCR節(jié)點(diǎn)之一作為接管發(fā)生故障的NVCR節(jié)點(diǎn),并向其他 NVCR節(jié)點(diǎn)發(fā)送失敗接管任務(wù)通知。
在本實(shí)施例中,每一個(gè)NVCR節(jié)點(diǎn)每隔一分鐘向其他NVCR節(jié)點(diǎn)廣播一次活躍消息。 在此過(guò)程中,每五分鐘將根據(jù)步驟(4)中的方法選舉出負(fù)載最小的NVCR節(jié)點(diǎn)作為一個(gè)失敗接管管理者。
由于每一個(gè)NVCR節(jié)點(diǎn)每隔一定時(shí)間向其他NVCR廣播一次信息,維持心跳連接,因此每一個(gè)NVCR都能單獨(dú)監(jiān)控集群內(nèi)其他各NVCR節(jié)點(diǎn)的運(yùn)行情況。如某個(gè)NVCR節(jié)點(diǎn)A心跳連接失效后,即當(dāng)集群系統(tǒng)內(nèi)某個(gè)NVCR節(jié)點(diǎn)A超過(guò)一分鐘未發(fā)送活躍消息,同一時(shí)間內(nèi)其他正常工作的NVCR節(jié)點(diǎn)發(fā)現(xiàn)此故障后,均等待一個(gè)隨機(jī)時(shí)間后向故障NVCR節(jié)點(diǎn)作故障確認(rèn)。隨機(jī)時(shí)間最小的NVCR節(jié)點(diǎn)B首先向所有NVCR節(jié)點(diǎn)廣播故障確認(rèn)請(qǐng)求,其他正常工作的NVCR節(jié)點(diǎn)收到此請(qǐng)求后,消除隨機(jī)時(shí)間等待;如果節(jié)點(diǎn)A對(duì)此故障請(qǐng)求作出回應(yīng),則判定無(wú)故障存在,否則判定節(jié)點(diǎn)A發(fā)生故障。
在得到故障確認(rèn)后,其他各個(gè)節(jié)點(diǎn)將各自的列表中屬于A節(jié)點(diǎn)接管的IPC狀態(tài)更新為未分配。
被選舉出的管理者在確認(rèn)A節(jié)點(diǎn)故障后,首先發(fā)起失敗接管任務(wù)通知給各個(gè)節(jié)點(diǎn),以避免出現(xiàn)多個(gè)管理者處理任務(wù)的情況。然后管理者根據(jù)步驟(I)得到的所有NVCR節(jié)點(diǎn)記錄信息,利用步驟(4)重新均衡分配。涉及的NVCR節(jié)點(diǎn)在改變發(fā)生后均按步驟(2)廣播信息通知其他NVCR節(jié)點(diǎn)。
(6)在某一個(gè)NVCR執(zhí)行實(shí)時(shí)轉(zhuǎn)發(fā)或視頻搜索時(shí),利用實(shí)時(shí)轉(zhuǎn)發(fā)及視頻搜索算法來(lái)實(shí)現(xiàn)。
在一 NVCR節(jié)點(diǎn)收到一客戶端關(guān)于播放一 IP攝像機(jī)的實(shí)時(shí)視頻音頻碼流的請(qǐng)求時(shí),該NVCR節(jié)點(diǎn)根據(jù)集群內(nèi)所有NVCR節(jié)點(diǎn)的信息,查找到接管該IP攝像機(jī)的NVCR節(jié)點(diǎn), 并向其請(qǐng)求轉(zhuǎn)發(fā)實(shí)時(shí)視頻音頻碼流,然后向客戶端轉(zhuǎn)發(fā)接管該IP攝像機(jī)的NVCR節(jié)點(diǎn)的地址。
例如,客戶端登錄某個(gè)NVCR節(jié)點(diǎn)A并發(fā)起直播任務(wù),即請(qǐng)求某個(gè)IPC的實(shí)時(shí)音頻視頻流,直播任務(wù)請(qǐng)求應(yīng)包含IPC的IP地址。節(jié)點(diǎn)A根據(jù)步驟(I)得到的所有NVCR節(jié)點(diǎn)記錄信息,請(qǐng)求接管該IPC的NVCR節(jié)點(diǎn)B轉(zhuǎn)發(fā)實(shí)時(shí)音頻視頻流。而節(jié)點(diǎn)A只返回給客戶端轉(zhuǎn)發(fā)的地址??蛻舳送ㄟ^(guò)該地址連接接管該IPC的NVCR節(jié)點(diǎn)B,獲取實(shí)時(shí)音頻視頻流。經(jīng)過(guò)節(jié)點(diǎn)B的轉(zhuǎn)發(fā),突破了 IPC連接數(shù)的限制,實(shí)現(xiàn)多點(diǎn)多路同時(shí)直播。
在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于搜索一 IP攝像機(jī)在某一時(shí)刻的視頻音頻碼流的請(qǐng)求時(shí),該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)計(jì)算當(dāng)前所述集群內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值,將所述關(guān)于搜索一 IP攝像機(jī)在某一時(shí)刻的視頻音頻碼流的請(qǐng)求發(fā)送至負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一;所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一向其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)發(fā)送該請(qǐng)求;其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)對(duì)自身所保存的錄像文件進(jìn)行搜索并將搜索結(jié)果返回給所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一;所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一將搜索結(jié)果進(jìn)行合并以獲得與該IP攝像機(jī)某一時(shí)刻的視頻音頻碼流相對(duì)應(yīng)的錄像文件和網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn);所述客戶端根據(jù)與該IP攝像機(jī)某一時(shí)刻的視頻音頻碼流相對(duì)應(yīng)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的IP地址獲取所述錄像文件。
在客戶端登錄節(jié)點(diǎn)A,發(fā)起搜索視頻任務(wù),請(qǐng)求某個(gè)IPC某個(gè)時(shí)刻的錄像,搜索視頻任務(wù)請(qǐng)求應(yīng)包含IPC的IP地址、視頻的起止時(shí)間等作為搜索條件。節(jié)點(diǎn)A根據(jù)步驟I得到的所有NVCR節(jié)點(diǎn)記錄信息,根據(jù)步驟4的負(fù)載均衡算法選擇負(fù)載最小的NVCR節(jié)點(diǎn)C,向其轉(zhuǎn)交搜索視頻任務(wù)。節(jié)點(diǎn)C向所有NVCR節(jié)點(diǎn)廣播視頻搜索請(qǐng)求,該請(qǐng)求包含IPC的IP 地址、視頻的起止時(shí)間等作為搜索條件。其他NVCR節(jié)點(diǎn)對(duì)自身保存的錄像文件進(jìn)行搜索, 將搜索結(jié)果返回給節(jié)點(diǎn)C。節(jié)點(diǎn)C得到一份NVCR與錄像文件的映射關(guān)系,此即map階段。 節(jié)點(diǎn)C對(duì)所有映射進(jìn)行合并,此為reduce階段。合并結(jié)果將包含一個(gè)NVCR節(jié)點(diǎn)D和對(duì)應(yīng)的錄像文件。節(jié)點(diǎn)C將結(jié)果返回給客戶端,客戶端再連接節(jié)點(diǎn)D請(qǐng)求發(fā)送錄像文件。節(jié)點(diǎn) D開(kāi)放錄像轉(zhuǎn)發(fā)地址,客戶端通過(guò)該地址獲取錄像。涉及的NVCR節(jié)點(diǎn)在改變發(fā)生后均按步驟2廣播信息通知其他NVCR。
本發(fā)明所提供的全連通的網(wǎng)絡(luò)視頻集群化錄像系統(tǒng),包括多個(gè)NVCR節(jié)點(diǎn)。各個(gè) NVCR節(jié)點(diǎn)通過(guò)信息交流協(xié)同工作,完成接管IPC、錄像、備份、回放、負(fù)載均衡、失敗接管,以及接受客戶端請(qǐng)求并返回結(jié)果等功能。對(duì)于客戶端,其登錄任何一臺(tái)NVCR節(jié)點(diǎn),都可以查詢獲得整個(gè)集群的信息和錄像,使其感覺(jué)不到獨(dú)立的網(wǎng)絡(luò)視頻錄像機(jī)的存在。
本發(fā)明解決了單臺(tái)網(wǎng)絡(luò)視頻錄像機(jī)(NVR)性能瓶頸,產(chǎn)生的錄像不會(huì)隨某一個(gè)設(shè)備的故障而丟失;同時(shí)也解決了現(xiàn)有技術(shù)中,主從集群化導(dǎo)致的主節(jié)點(diǎn)單點(diǎn)性能瓶頸,由于消除了中心點(diǎn),使得集群不會(huì)受主節(jié)點(diǎn)的宕機(jī)而產(chǎn)生的各種影響,進(jìn)一步,整個(gè)集群中任一節(jié)點(diǎn)發(fā)生故障都不會(huì)影響集群的運(yùn)行,提高了系統(tǒng)可靠性和穩(wěn)定性。
本發(fā)明提供不停機(jī)的情況下單個(gè)NVCR節(jié)點(diǎn)的動(dòng)態(tài)擴(kuò)容;同時(shí)在保持設(shè)備數(shù)量不變的前提下,僅通過(guò)增加NVCR節(jié)點(diǎn)的存儲(chǔ)空間,即可實(shí)現(xiàn)整個(gè)集群存儲(chǔ)空間的擴(kuò)容,節(jié)約了系統(tǒng)擴(kuò)容成本,提高了系統(tǒng)的擴(kuò)展性和可管理性。進(jìn)一步,由于無(wú)中心節(jié)點(diǎn),集群擴(kuò)容不受中心節(jié)點(diǎn)性能限制,使得系統(tǒng)容量大幅提升至PB級(jí)別。
本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
雖然本發(fā)明所揭露的實(shí)施方式如上,但所述的內(nèi)容只是為了便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬技術(shù)領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式上及細(xì)節(jié)上作任何的修改與變化, 但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。
權(quán)利要求
1.一種網(wǎng)絡(luò)視頻錄像集群系統(tǒng),包括多個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)、多個(gè)IP攝像機(jī)、多個(gè)客戶端和IP網(wǎng)絡(luò),其中, 各個(gè)IP攝像機(jī)接入至所述IP網(wǎng)絡(luò)中,用于產(chǎn)生音頻視頻碼流等相關(guān)信息; 各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)相互連接,并接入至所述IP網(wǎng)絡(luò)中以構(gòu)成ー無(wú)中心節(jié)點(diǎn)全連通拓?fù)浣Y(jié)構(gòu)的集群系統(tǒng); 各個(gè)客戶端通過(guò)所述IP網(wǎng)絡(luò)與各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)連接,其向所述各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)發(fā)送請(qǐng)求; 所述各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之間相互協(xié)同工作以實(shí)現(xiàn)各個(gè)客戶端的請(qǐng)求,其中, 所述各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)保存集群內(nèi)所有網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的信息。
2.根據(jù)權(quán)利要求I所述的網(wǎng)絡(luò)視頻錄像集群系統(tǒng),其特征在干, 在檢測(cè)到任一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的信息發(fā)生變化吋, 該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)向其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)發(fā)布更改消息,其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)根據(jù)所述更改信息更新相應(yīng)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的信息,其中, 所述更改消息包括信息發(fā)生變化的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的IP地址、發(fā)生變化的信息、時(shí)間戳和消息校驗(yàn)值。
3.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)視頻錄像集群系統(tǒng),其特征在干, 在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到ー客戶端關(guān)于添加一 IP攝像機(jī)的請(qǐng)求吋, 該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)查詢當(dāng)前所述集群系統(tǒng)內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)已接管的IP攝像機(jī)的數(shù)量,將所述關(guān)于添加一 IP攝像機(jī)的請(qǐng)求發(fā)送至已接管的IP攝像機(jī)的數(shù)量最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之ー以完成對(duì)ー IP攝像機(jī)的添加。
4.根據(jù)權(quán)利要求I至3中任一項(xiàng)所述的網(wǎng)絡(luò)視頻錄像集群系統(tǒng),其特征在干, 在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于對(duì)一未被接管的IP攝像機(jī)進(jìn)行錄像的請(qǐng)求時(shí), 該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)計(jì)算當(dāng)前所述集群系統(tǒng)內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值,將所述關(guān)于對(duì)一未被接管的IP攝像機(jī)進(jìn)行錄像的請(qǐng)求發(fā)送至負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之ー以完成對(duì)該IP攝像機(jī)的錄像,其中, 所述負(fù)載值是根據(jù)各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)所錄像的音頻視頻碼流的大小來(lái)得到的。
5.根據(jù)權(quán)利要求I至3中任一項(xiàng)所述的網(wǎng)絡(luò)視頻錄像集群系統(tǒng),其特征在干, 在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于對(duì)一已被接管的IP攝像機(jī)進(jìn)行錄像的請(qǐng)求時(shí), 該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)查詢到接管該IP攝像機(jī)的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn),將所述請(qǐng)求發(fā)送至接管該IP攝像機(jī)的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)中以完成對(duì)該IP攝像機(jī)的錄像,并將錄像后的錄像文件存儲(chǔ)至用于存儲(chǔ)所有錄像文件的存儲(chǔ)池中; 同時(shí),該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)計(jì)算當(dāng)前所述集群內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值,控制負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之ー對(duì)該IP攝像機(jī)進(jìn)行錄像以得到備份錄像文件。
6.根據(jù)權(quán)利要求I至3中任一項(xiàng)所述的網(wǎng)絡(luò)視頻錄像集群系統(tǒng),其特征在干, 在檢測(cè)到一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)發(fā)生故障吋, 該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)計(jì)算當(dāng)前所述集群內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值,將當(dāng)前負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一作為接管發(fā)生故障的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn),井向其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)發(fā)送失敗接管任務(wù)通知。
7.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)視頻錄像集群系統(tǒng),其特征在于,通過(guò)以下步驟來(lái)檢測(cè)一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)是否發(fā)生故障, 所述集群中每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)在每個(gè)設(shè)定時(shí)間向其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)廣播心跳消息、來(lái)維持各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之間的心跳連接; 若ー網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的心跳連接失效時(shí),其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)向該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)進(jìn)行故障確認(rèn)請(qǐng)求,若收到該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)對(duì)所述故障確認(rèn)請(qǐng)求的回應(yīng),則判定其無(wú)故障存在,否則,判定其發(fā)生故障。
8.根據(jù)權(quán)利要求I至3中任一項(xiàng)所述的網(wǎng)絡(luò)視頻錄像集群系統(tǒng),其特征在干, 在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于搜索一 IP攝像機(jī)在某ー時(shí)刻的視頻音頻碼流的請(qǐng)求時(shí), 該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)計(jì)算當(dāng)前所述集群內(nèi)的每個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值,將所述關(guān)于搜索一 IP攝像機(jī)在某一時(shí)刻的視頻音頻碼流的請(qǐng)求發(fā)送至負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一; 所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一向其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)發(fā)送該請(qǐng)求; 其他網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)對(duì)自身所保存的錄像文件進(jìn)行搜索并將搜索結(jié)果返回給所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一; 所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一將捜索結(jié)果進(jìn)行合并以獲得與該IP攝像機(jī)某ー時(shí)刻的視頻音頻碼流相對(duì)應(yīng)的錄像文件和網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn); 所述客戶端根據(jù)與該IP攝像機(jī)某一時(shí)刻的視頻音頻碼流相對(duì)應(yīng)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的IP地址獲取所述錄像文件。
9.根據(jù)權(quán)利要求4至8中任一項(xiàng)所述的網(wǎng)絡(luò)視頻錄像集群系統(tǒng),其特征在干, 在檢測(cè)到ー網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的負(fù)載值超過(guò)所述網(wǎng)絡(luò)視頻錄像監(jiān)控系統(tǒng)平均負(fù)載的設(shè)定倍數(shù)時(shí),控制所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之一來(lái)接管該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的部分負(fù)載。
10.根據(jù)權(quán)利要求9所述的網(wǎng)絡(luò)視頻錄像集群系統(tǒng),其特征在干, 在一網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)收到一客戶端關(guān)于播放一 IP攝像機(jī)的實(shí)時(shí)視頻音頻碼流的請(qǐng)求時(shí), 該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)根據(jù)所述集群內(nèi)所有網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的信息,查找到接管該IP攝像機(jī)的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn),井向其請(qǐng)求轉(zhuǎn)發(fā)實(shí)時(shí)視頻音頻碼流,然后向所述客戶端轉(zhuǎn)發(fā)接管該IP攝像機(jī)的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的地址。
11.根據(jù)權(quán)利要求I至10任一項(xiàng)所述的網(wǎng)絡(luò)視頻錄像集群系統(tǒng),其特征在干, 在用戶通過(guò)所述客戶端登陸到ー網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)時(shí),判斷所述客戶端是否存在重定向通知,若判斷結(jié)果為是,則將該用戶轉(zhuǎn)到所述重定向通知中的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)中登錄,否則,進(jìn)行以下步驟 判斷登錄到所述該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的用戶數(shù)量是否超出所述網(wǎng)絡(luò)視頻錄像監(jiān)控系統(tǒng)用戶數(shù)均值的設(shè)定倍數(shù),且該用戶數(shù)均值大于設(shè)定數(shù)值,若判斷結(jié)果為是,則該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)選擇在所述負(fù)載值最小的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn),將該用戶轉(zhuǎn)到所選擇的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)中登錄。
12.根據(jù)權(quán)利要求11所述的網(wǎng)絡(luò)視頻錄像集群系統(tǒng),其特征在干, 在所述網(wǎng)絡(luò)視頻錄像集群系統(tǒng)工作運(yùn)行之前,各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)向其所在的網(wǎng)絡(luò)廣播心跳消息; 各個(gè)網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)接收到與之相鄰的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的心跳消息后,判斷發(fā)送心跳消息的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)是否在自身的信息列表中,若不存在,則發(fā)送獲取請(qǐng)求到發(fā)送該心跳消息的網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)中以獲得該網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的信息, 其中,所述心跳消息包括所述網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)自身的IP地址、存儲(chǔ)容量信息、時(shí)間戳和消息校驗(yàn)值。
全文摘要
本發(fā)明公開(kāi)了一種網(wǎng)絡(luò)視頻錄像集群系統(tǒng),該系統(tǒng)包括各IP攝像機(jī)接入至IP網(wǎng)絡(luò)中,用于產(chǎn)生音頻視頻碼流等相關(guān)信息;各網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)相互連接,并接入至IP網(wǎng)絡(luò)中以構(gòu)成一無(wú)中心節(jié)點(diǎn)全連通拓?fù)浣Y(jié)構(gòu)的集群系統(tǒng);各客戶端通過(guò)IP網(wǎng)絡(luò)與各網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)連接,其向各網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)發(fā)送請(qǐng)求;各網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)之間相互協(xié)同工作以實(shí)現(xiàn)各客戶端的請(qǐng)求,各網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)保存集群內(nèi)所有網(wǎng)絡(luò)視頻錄像節(jié)點(diǎn)的信息。本發(fā)明解決了單臺(tái)網(wǎng)絡(luò)視頻錄像機(jī)性能瓶頸,產(chǎn)生的錄像不會(huì)隨某一個(gè)設(shè)備的故障而丟失;同時(shí)也解決了主從集群化導(dǎo)致的主節(jié)點(diǎn)單點(diǎn)性能瓶頸,由于消除了中心點(diǎn),使得集群不會(huì)受主節(jié)點(diǎn)的宕機(jī)而產(chǎn)生的各種影響。
文檔編號(hào)H04L29/08GK102984501SQ201210461018
公開(kāi)日2013年3月20日 申請(qǐng)日期2012年11月15日 優(yōu)先權(quán)日2012年11月15日
發(fā)明者曹震洲, 高欣 申請(qǐng)人:杭州瑞網(wǎng)廣通信息技術(shù)有限公司