實(shí)時(shí)系統(tǒng)更新方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種實(shí)時(shí)系統(tǒng)更新方法及裝置。
【背景技術(shù)】
[0002]實(shí)時(shí)系統(tǒng)用于數(shù)據(jù)的實(shí)時(shí)處理,滿(mǎn)足用戶(hù)實(shí)時(shí)查看數(shù)據(jù)的需求。如圖1所示的實(shí)時(shí)系統(tǒng)的架構(gòu)的邏輯示意圖中包含了多個(gè)不同功能的節(jié)點(diǎn),其中,請(qǐng)求轉(zhuǎn)發(fā)節(jié)點(diǎn)用于將請(qǐng)求轉(zhuǎn)發(fā)到計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)用于將請(qǐng)求進(jìn)行解析,并將解析得到的數(shù)據(jù)進(jìn)行聚合,中心節(jié)點(diǎn)用于保存聚合后的數(shù)據(jù),查詢(xún)節(jié)點(diǎn)用于從中心節(jié)點(diǎn)查詢(xún)保存后的數(shù)據(jù),其中,每個(gè)節(jié)點(diǎn)包含多個(gè)實(shí)例,例如,實(shí)例1、實(shí)例2和實(shí)例3,實(shí)例可以是節(jié)點(diǎn)的進(jìn)程。上述實(shí)施系統(tǒng)中的每個(gè)實(shí)例發(fā)送數(shù)據(jù)的目標(biāo)地址都是在配置文件中配置的,比如請(qǐng)求轉(zhuǎn)發(fā)節(jié)點(diǎn)實(shí)例需要配置所有計(jì)算節(jié)點(diǎn)實(shí)例的地址列表,計(jì)算節(jié)點(diǎn)實(shí)例需要配置所有中心節(jié)點(diǎn)實(shí)例的地址列表,在每個(gè)節(jié)點(diǎn)啟動(dòng)的時(shí)候讀取配置文件中配置的目標(biāo)地址列表,數(shù)據(jù)被發(fā)送到每個(gè)目標(biāo)地址對(duì)應(yīng)的實(shí)例中。一旦實(shí)例啟動(dòng)之后,再修改配置文件將不起作用,例如,在配置文件中新添加一個(gè)目標(biāo)地址,此時(shí)數(shù)據(jù)并不會(huì)發(fā)送給這個(gè)新加的目標(biāo)地址。此外,上述實(shí)施系統(tǒng)的每個(gè)節(jié)點(diǎn)都有對(duì)應(yīng)的守護(hù)進(jìn)程,該守護(hù)進(jìn)程一方面用于在配置文件中配置需要啟動(dòng)的實(shí)例,在守護(hù)進(jìn)程啟動(dòng)后根據(jù)配置文件中的配置啟動(dòng)實(shí)例;另一方面該守護(hù)進(jìn)程用于監(jiān)控正在運(yùn)行的實(shí)例,當(dāng)實(shí)例停止運(yùn)行時(shí)重新啟動(dòng)實(shí)例。
[0003]上述實(shí)時(shí)系統(tǒng)主要存在如下兩個(gè)問(wèn)題,一是在每次進(jìn)行系統(tǒng)升級(jí)時(shí),必須停掉整個(gè)實(shí)時(shí)系統(tǒng),升級(jí)完畢后,再重新啟動(dòng)實(shí)時(shí)系統(tǒng)。例如,對(duì)計(jì)算節(jié)點(diǎn)進(jìn)行升級(jí),此時(shí)如果僅停掉實(shí)時(shí)系統(tǒng)中的計(jì)算節(jié)點(diǎn)進(jìn)行升級(jí),將會(huì)導(dǎo)致向計(jì)算節(jié)點(diǎn)發(fā)送數(shù)據(jù)失敗,從而使得向計(jì)算節(jié)點(diǎn)發(fā)送的數(shù)據(jù)丟失。因此,在實(shí)時(shí)系統(tǒng)升級(jí)期間,必須停掉整個(gè)實(shí)時(shí)系統(tǒng),在升級(jí)期間的數(shù)據(jù)將全部丟失,做不到無(wú)縫更新。二是線上環(huán)境運(yùn)行時(shí),如果發(fā)現(xiàn)某個(gè)節(jié)點(diǎn)性能瓶頸,需要在配置文件中添加新實(shí)例,此時(shí)同樣需要停掉整個(gè)系統(tǒng)后再重新啟動(dòng)實(shí)時(shí)系統(tǒng),這樣新實(shí)例才會(huì)起作用,這個(gè)過(guò)程同樣存在數(shù)據(jù)丟失的問(wèn)題。
[0004]針對(duì)相關(guān)技術(shù)中實(shí)時(shí)系統(tǒng)更新時(shí)存在數(shù)據(jù)丟失的問(wèn)題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于提供一種實(shí)時(shí)系統(tǒng)更新方法及裝置,以解決實(shí)時(shí)系統(tǒng)更新時(shí)存在數(shù)據(jù)丟失的問(wèn)題。
[0006]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種實(shí)時(shí)系統(tǒng)更新方法。
[0007]實(shí)時(shí)系統(tǒng)包括第一節(jié)點(diǎn),第一節(jié)點(diǎn)包含多個(gè)實(shí)例,根據(jù)本發(fā)明的實(shí)時(shí)系統(tǒng)更新方法包括:檢測(cè)第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件是否發(fā)生更新,其中,第一節(jié)點(diǎn)的守護(hù)進(jìn)程用于啟動(dòng)第一節(jié)點(diǎn)的實(shí)例,第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件中配置有第一節(jié)點(diǎn)的多個(gè)實(shí)例中需要啟動(dòng)的實(shí)例;在檢測(cè)到配置文件發(fā)生更新時(shí),加載更新后的配置文件;以及根據(jù)更新后的配置文件啟動(dòng)第一節(jié)點(diǎn)的實(shí)例。
[0008]進(jìn)一步地,檢測(cè)第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件是否發(fā)生更新包括:檢測(cè)第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件是否發(fā)生修改;如果檢測(cè)出第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件發(fā)生修改,則確定第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件發(fā)生更新;以及如果檢測(cè)出第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件未發(fā)生修改,則確定第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件未發(fā)生更新。
[0009]進(jìn)一步地,實(shí)時(shí)系統(tǒng)還包括第二節(jié)點(diǎn),第二節(jié)點(diǎn)用于存儲(chǔ)實(shí)時(shí)系統(tǒng)中的實(shí)例相關(guān)的數(shù)據(jù),在檢測(cè)到配置文件發(fā)生更新時(shí),加載更新后的配置文件之后,方法包括:從更新后的配置文件中獲取新增加的實(shí)例和刪除的實(shí)例;在第二節(jié)點(diǎn)中存儲(chǔ)與新增加的實(shí)例相關(guān)的數(shù)據(jù);以及從第二節(jié)點(diǎn)中刪除與刪除的實(shí)例相關(guān)的數(shù)據(jù)。
[0010]進(jìn)一步地,從更新后的配置文件中獲取新增加的實(shí)例和刪除的實(shí)例包括:獲取更新前的配置文件中的實(shí)例集合,得到第一實(shí)例集合;獲取更新后的配置文件中的實(shí)例集合,得到第二實(shí)例集合;以及根據(jù)第一實(shí)例集合和第二實(shí)例集合得到新增加的實(shí)例和刪除的實(shí)例。
[0011]進(jìn)一步地,在第二節(jié)點(diǎn)中存儲(chǔ)與新增加的實(shí)例相關(guān)的數(shù)據(jù)包括:調(diào)用第二節(jié)點(diǎn)的第一預(yù)設(shè)操作,其中,第一預(yù)設(shè)操作用于存儲(chǔ)數(shù)據(jù)至第二節(jié)點(diǎn)中;以及通過(guò)執(zhí)行第一預(yù)設(shè)操作在預(yù)設(shè)字典中存儲(chǔ)新增加的實(shí)例相關(guān)的數(shù)據(jù),其中,預(yù)設(shè)字典用于存儲(chǔ)實(shí)時(shí)系統(tǒng)的實(shí)例相關(guān)的數(shù)據(jù),預(yù)設(shè)字典包含標(biāo)識(shí)列和屬性值列,標(biāo)識(shí)列用于存儲(chǔ)實(shí)例的編號(hào),屬性值列用于存儲(chǔ)實(shí)例相關(guān)的數(shù)據(jù)。
[0012]進(jìn)一步地,在通過(guò)執(zhí)行第一預(yù)設(shè)操作在預(yù)設(shè)字典中存儲(chǔ)新增加的實(shí)例相關(guān)的數(shù)據(jù)之后,該方法還包括:為新增加的實(shí)例中的每一個(gè)實(shí)例創(chuàng)建對(duì)應(yīng)的存儲(chǔ)文件;以及將新增加的實(shí)例相關(guān)的數(shù)據(jù)存儲(chǔ)至對(duì)應(yīng)的存儲(chǔ)文件中。
[0013]進(jìn)一步地,從第二節(jié)點(diǎn)中刪除與刪除的實(shí)例相關(guān)的數(shù)據(jù)包括:調(diào)用第二節(jié)點(diǎn)的第二預(yù)設(shè)操作,其中,第二預(yù)設(shè)操作用于從第二節(jié)點(diǎn)中刪除預(yù)先存儲(chǔ)的數(shù)據(jù);以及通過(guò)執(zhí)行第二預(yù)設(shè)操作從第二節(jié)點(diǎn)中刪除與刪除的實(shí)例相關(guān)的數(shù)據(jù)。
[0014]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種實(shí)時(shí)系統(tǒng)更新裝置。
[0015]實(shí)時(shí)系統(tǒng)包括第一節(jié)點(diǎn),第一節(jié)點(diǎn)包含多個(gè)實(shí)例,根據(jù)本發(fā)明的實(shí)時(shí)系統(tǒng)更新裝置包括:檢測(cè)單元,用于檢測(cè)第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件是否發(fā)生更新,其中,第一節(jié)點(diǎn)的守護(hù)進(jìn)程用于啟動(dòng)第一節(jié)點(diǎn)的實(shí)例,第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件中配置有第一節(jié)點(diǎn)的多個(gè)實(shí)例中需要啟動(dòng)的實(shí)例;加載單元,用于在檢測(cè)到配置文件發(fā)生更新時(shí),加載更新后的配置文件;以及啟動(dòng)單元,用于根據(jù)更新后的配置文件啟動(dòng)第一節(jié)點(diǎn)的實(shí)例。
[0016]進(jìn)一步地,檢測(cè)單元包括:檢測(cè)模塊,用于檢測(cè)第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件是否發(fā)生修改;以及確定模塊,用于在檢測(cè)出第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件發(fā)生修改時(shí),確定第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件發(fā)生更新,在檢測(cè)出第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件未發(fā)生修改時(shí),確定第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件未發(fā)生更新。
[0017]進(jìn)一步地,實(shí)時(shí)系統(tǒng)還包括第二節(jié)點(diǎn),第二節(jié)點(diǎn)用于存儲(chǔ)實(shí)時(shí)系統(tǒng)中的實(shí)例相關(guān)的數(shù)據(jù),裝置包括:獲取單元,用于從更新后的配置文件中獲取新增加的實(shí)例和刪除的實(shí)例;存儲(chǔ)單元,用于在第二節(jié)點(diǎn)中存儲(chǔ)與新增加的實(shí)例相關(guān)的數(shù)據(jù);以及刪除單元,用于從第二節(jié)點(diǎn)中刪除與刪除的實(shí)例相關(guān)的數(shù)據(jù)。
[0018]通過(guò)本發(fā)明,采用實(shí)時(shí)檢測(cè)第一節(jié)點(diǎn)的守護(hù)進(jìn)程的配置文件的變化,在檢測(cè)到配置文件發(fā)生更新時(shí),加載更新后的配置文件,并根據(jù)更新后的配置文件啟動(dòng)第一節(jié)點(diǎn)的實(shí)例,實(shí)現(xiàn)了在實(shí)時(shí)系統(tǒng)更新過(guò)程中無(wú)需停掉整個(gè)實(shí)時(shí)系統(tǒng),解決了實(shí)時(shí)系統(tǒng)更新時(shí)存在數(shù)據(jù)丟失的問(wèn)題,進(jìn)而達(dá)到了減少實(shí)時(shí)系統(tǒng)更新時(shí)數(shù)據(jù)丟失的效果。
【附圖說(shuō)明】
[0019]構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0020]圖1是根據(jù)相關(guān)技術(shù)的實(shí)時(shí)系統(tǒng)的示意圖;
[0021]圖2是根據(jù)本發(fā)明實(shí)施例的實(shí)時(shí)系統(tǒng)更新方法的流程圖;
[0022]圖3是根據(jù)本發(fā)明實(shí)施例的實(shí)時(shí)系統(tǒng)的示意圖;以及
[0023]圖4是根據(jù)本發(fā)明實(shí)施例的實(shí)時(shí)系統(tǒng)更新裝置的示意圖。
【具體實(shí)施方式】
[0024]需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。
[0025]為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分的實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
[0026]需要說(shuō)明的是,本申請(qǐng)的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類(lèi)似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請(qǐng)的實(shí)施例。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0027]根據(jù)本發(fā)明實(shí)施例,提供了一種實(shí)時(shí)系統(tǒng)更新方法,圖2是根據(jù)本發(fā)明實(shí)施例的實(shí)時(shí)系統(tǒng)更新方法的流程圖。
[0028]該實(shí)時(shí)系統(tǒng)包括第一節(jié)點(diǎn),第一節(jié)點(diǎn)