專利名稱:一種數(shù)據(jù)推送方法、系統(tǒng)及裝置的制作方法
技術(shù)領(lǐng)域:
本申請涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤指一種適用于不常變動的數(shù)據(jù)推送的數(shù)據(jù)推送方法、系統(tǒng)及裝置。
背景技術(shù):
目前在一些常見的互聯(lián)網(wǎng)應(yīng)用場景下,網(wǎng)站的Web服務(wù)器為了避免頻繁從遠(yuǎn)程服務(wù)器(如數(shù)據(jù)庫)重復(fù)取一些不常變動的數(shù)據(jù),會每隔一段時間(比較典型的如一天)從遠(yuǎn)程服務(wù)器取一次數(shù)據(jù),然后組織成需要的數(shù)據(jù)結(jié)構(gòu),緩存在Web服務(wù)器的內(nèi)存里或本地文件系統(tǒng)中,以后每次需要用到這部分?jǐn)?shù)據(jù)的時候,直接從本地內(nèi)存或文件中取,從而減少網(wǎng)絡(luò)開銷。也就是說,現(xiàn)有技術(shù)中對于不常變動的數(shù)據(jù),為了不頻繁獲取,Web服務(wù)器會主動從遠(yuǎn)程服務(wù)器獲取數(shù)據(jù)到Web服務(wù)器。例如圖1所示的系統(tǒng)架構(gòu)中多個網(wǎng)站的Web服務(wù)器連接一個遠(yuǎn)程服務(wù)器,并能夠從遠(yuǎn)程服務(wù)器獲取數(shù)據(jù)。這種系統(tǒng)架構(gòu),Web服務(wù)器獲取數(shù)據(jù)后,數(shù)據(jù)結(jié)構(gòu)的組織都在Web服務(wù)器進(jìn)行,隨著緩存數(shù)據(jù)規(guī)模的不斷擴(kuò)大,或業(yè)務(wù)的日趨復(fù)雜,生成數(shù)據(jù)的過程會變的越來越慢,且數(shù)據(jù)的生成會占用Web服務(wù)器較多的處理資源,導(dǎo)致Web服務(wù)器的性能下降,從而使Web服務(wù)器的維護(hù)也變得越來越困難??梢?,現(xiàn)有技術(shù)中,針對有緩存數(shù)據(jù)需求的Web服務(wù)器集群,對于其緩存數(shù)據(jù)的提供、管理和更新,只能采用Web服務(wù)器主動獲取想要緩存的數(shù)據(jù)的方式實(shí)現(xiàn),還沒有比較好的解決方案。不能做到有針對性的為Web服務(wù)器提供數(shù)據(jù),統(tǒng)一的進(jìn)行緩存數(shù)據(jù)的生成控制和更新。
發(fā)明內(nèi)容
本申請實(shí)施例提供一種數(shù)據(jù)推送方法、系統(tǒng)及裝置,用以解決現(xiàn)有技術(shù)中Web服務(wù)器獲取緩存數(shù)據(jù)時存在的數(shù)據(jù)生成慢,影響Web服務(wù)器整體性能,使Web服務(wù)器維護(hù)困難的問題。一種數(shù)據(jù)推送方法,包括:推送服務(wù)器確定遠(yuǎn)程數(shù)據(jù)服務(wù)器向網(wǎng)頁Web服務(wù)器提供的數(shù)據(jù)發(fā)生變化時或監(jiān)控到Web服務(wù)器首次請求連接遠(yuǎn)程數(shù)據(jù)服務(wù)器時,從遠(yuǎn)程數(shù)據(jù)服務(wù)器獲取提供給Web服務(wù)器的數(shù)據(jù);推送服務(wù)器將獲取的數(shù)據(jù)封裝成Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu),向Web服務(wù)器推送。一種數(shù)據(jù)推送系統(tǒng),包括:遠(yuǎn)程數(shù)據(jù)服務(wù)器,用于向網(wǎng)頁Web服務(wù)器提供數(shù)據(jù);推送服務(wù)器,用于確定遠(yuǎn)程數(shù)據(jù)服務(wù)器向網(wǎng)頁Web服務(wù)器提供的數(shù)據(jù)發(fā)生變化時或監(jiān)控到Web服務(wù)器首次請求連接遠(yuǎn)程數(shù)據(jù)服務(wù)器時,從遠(yuǎn)程數(shù)據(jù)服務(wù)器獲取提供給Web服務(wù)器的數(shù)據(jù);以及推送服務(wù)器將獲取的數(shù)據(jù)封裝成Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu),向Web服務(wù)器推送;Web服務(wù)器,用于接收推送服務(wù)器推送的數(shù)據(jù)。一種數(shù)據(jù)推送服務(wù)器,包括:數(shù)據(jù)獲取模塊,用于確定遠(yuǎn)程數(shù)據(jù)服務(wù)器向網(wǎng)頁Web服務(wù)器提供的數(shù)據(jù)發(fā)生變化時或監(jiān)控到Web服務(wù)器首次請求連接遠(yuǎn)程數(shù)據(jù)服務(wù)器時,從遠(yuǎn)程數(shù)據(jù)服務(wù)器獲取提供給Web服務(wù)器的數(shù)據(jù);推送模塊,用于將獲取的數(shù)據(jù)封裝成Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu),向Web服務(wù)器推送。本申請有益效果如下:本申請實(shí)施例提供的數(shù)據(jù)推送方法、系統(tǒng)及裝置,由推送服務(wù)器確定遠(yuǎn)程數(shù)據(jù)服務(wù)器向網(wǎng)頁Web服務(wù)器提供的數(shù)據(jù)發(fā)生變化時,或者監(jiān)控到Web服務(wù)器首次請求連接遠(yuǎn)程數(shù)據(jù)服務(wù)器時,從遠(yuǎn)程數(shù)據(jù)服務(wù)器獲取提供給Web服務(wù)器的數(shù)據(jù);然后將獲取的數(shù)據(jù)封裝成Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu),向Web服務(wù)器推送。該方法通過推送服務(wù)器以主動推送的方式向Web服務(wù)器推送數(shù)據(jù),避免了現(xiàn)有Web服務(wù)器集群獲取數(shù)據(jù)時,隨著緩存數(shù)據(jù)規(guī)模的不斷擴(kuò)大,或業(yè)務(wù)的日趨復(fù)雜,生成數(shù)據(jù)的過程會變的越來越慢的問題,提高了數(shù)據(jù)提供的速度和效率。數(shù)據(jù)結(jié)構(gòu)的組織也在推送服務(wù)器實(shí)現(xiàn),推送服務(wù)器可以設(shè)置一個或多個,Web服務(wù)器可以直接獲取到所需的數(shù)據(jù)結(jié)構(gòu),無需再組織構(gòu)建,從而可以提高數(shù)據(jù)生成的速度,進(jìn)而提高系統(tǒng)整體性能,也便于Web服務(wù)器的維護(hù)。
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:圖1為現(xiàn)有技術(shù)中網(wǎng)站系統(tǒng)架構(gòu)的結(jié)構(gòu)示意圖;圖2為本申請實(shí)施例中數(shù)據(jù)推送方法的流程圖;圖3為本申請實(shí)施例一中數(shù)據(jù)推送系統(tǒng)的結(jié)構(gòu)示意圖;圖4為本申請實(shí)施例一中數(shù)據(jù)推送服務(wù)器的結(jié)構(gòu)示意圖;圖5為本申請實(shí)施例二中數(shù)據(jù)推送系統(tǒng)的結(jié)構(gòu)示意圖;圖6為本申請實(shí)施例三中數(shù)據(jù)推送系統(tǒng)的結(jié)構(gòu)示意圖;圖7為本申請實(shí)施例三中目錄服務(wù)器的信息樹組織原理示意圖;圖8為本申請實(shí)施例三中信息樹更新觸發(fā)數(shù)據(jù)推送的流程示意圖。
具體實(shí)施例方式為了使本申請所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚、明白,以下結(jié)合附圖和實(shí)施例,對本申請進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本申請,并不用于限定本申請。本申請實(shí)施例提供的數(shù)據(jù)推送方法,通過推送服務(wù)器主動向網(wǎng)頁(Web)服務(wù)器推送數(shù)據(jù),以提高數(shù)據(jù)傳送的速度和效率。其流程如圖2所示,執(zhí)行步驟如下:步驟Sll:推送服務(wù)器確定遠(yuǎn)程數(shù)據(jù)服務(wù)器向網(wǎng)頁Web服務(wù)器提供的數(shù)據(jù)發(fā)生變化時,或者監(jiān)控到Web服務(wù)器首次請求連接遠(yuǎn)程數(shù)據(jù)服務(wù)器時,從遠(yuǎn)程數(shù)據(jù)服務(wù)器獲取提供給Web服務(wù)器的數(shù)據(jù)。根據(jù)Web服務(wù)器集群的數(shù)量多少,推送服務(wù)器可以設(shè)置一個或多個,以滿足Web服務(wù)器的數(shù)據(jù)推送需求。推送服務(wù)器可以在Web服務(wù)器首次連接遠(yuǎn)程數(shù)據(jù)服務(wù)器時,向Web服務(wù)器推送所需要的數(shù)據(jù),也可以在遠(yuǎn)程數(shù)據(jù)服務(wù)器所提供的數(shù)據(jù)發(fā)生變化時,主動向Web服務(wù)器推動所需要的數(shù)據(jù)。遠(yuǎn)程數(shù)據(jù)服務(wù)器開放一個端口,Web服務(wù)器在啟動時,可以主動連接到遠(yuǎn)程數(shù)據(jù)服務(wù)器的這個端口上來,并且在運(yùn)行的過程中不釋放該連接,當(dāng)遠(yuǎn)程服務(wù)器判斷到有數(shù)據(jù)需要更新或者Web服務(wù)器是首次連接的情況下,通過該連接將新的數(shù)據(jù)寫入Web服務(wù)器。步驟S12:推送服務(wù)器將獲取的數(shù)據(jù)封裝成Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu),向Web服務(wù)器推送。優(yōu)選的,所述推送服務(wù)器設(shè)置為多個時,根據(jù)預(yù)先建立推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系,向?qū)?yīng)的Web服務(wù)器推送數(shù)據(jù)。優(yōu)選的,通過設(shè)置的目錄服務(wù)器維護(hù)推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系;目錄服務(wù)器在Web服務(wù)器成功連接到推送服務(wù)器時,在推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系中添加Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄;在Web服務(wù)器與推送服務(wù)器的連接失效時,在推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系中刪除連接失效的Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄。優(yōu)選的,通過設(shè)置的目錄服務(wù)器維護(hù)推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系,包括:目錄服務(wù)器根據(jù)設(shè)定的分組策略,對Web服務(wù)器進(jìn)行分組,按照分組情況建立信息樹;其中,信息樹的根節(jié)點(diǎn)下的第一級子節(jié)點(diǎn)為數(shù)據(jù)類型信息,第二級子節(jié)點(diǎn)為每個數(shù)據(jù)類型對應(yīng)的Web服務(wù)器分組;第三級子節(jié)點(diǎn)為每個Web服務(wù)器分組下Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄;當(dāng)Web服務(wù)器成功連接到推送服務(wù)器時,根據(jù)Web服務(wù)器所需要的數(shù)據(jù)類型和所屬的Web服務(wù)器分組,確定要更新第三級子節(jié)點(diǎn)的的位置,實(shí)現(xiàn)下更新Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄;在Web服務(wù)器與推送服務(wù)器的連接失效時,刪除相應(yīng)的第三級子節(jié)點(diǎn)。優(yōu)選的,目錄服務(wù)器根據(jù)設(shè)定的分組策略對Web服務(wù)器進(jìn)行分組,具體包括:根據(jù)Web服務(wù)器需要的數(shù)據(jù)類型信息對Web服務(wù)器進(jìn)行分組;其中,數(shù)據(jù)類型信息包括數(shù)據(jù)類型和/或數(shù)據(jù)版本。優(yōu)選的,推送服務(wù)器將獲取的數(shù)據(jù)向Web服務(wù)器推送的過程包括:推送服務(wù)器根據(jù)數(shù)據(jù)類型確定對應(yīng)的信息樹的中第一級子節(jié)點(diǎn),根據(jù)確定第一級子節(jié)點(diǎn)下的第二級子節(jié)點(diǎn)查找需要推送數(shù)據(jù)的Web服務(wù)器分組,根據(jù)第二級子節(jié)點(diǎn)下的第三級子節(jié)點(diǎn)查找每個Web服務(wù)器分組下Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄,向?qū)?yīng)的Web服務(wù)器推送獲取的數(shù)據(jù)。基于同一申請構(gòu)思,本申請實(shí)施例還提供相應(yīng)的數(shù)據(jù)推送系統(tǒng),包括遠(yuǎn)程數(shù)據(jù)服務(wù)器、推送服務(wù)器和Web服務(wù)器,優(yōu)選的,還可以包括目錄服務(wù)器。下面通過具體的實(shí)施例說明本申請中各種架構(gòu)的數(shù)據(jù)推送系統(tǒng)。實(shí)施例一:本申請實(shí)施例一提供的數(shù)據(jù)推送系統(tǒng),其結(jié)構(gòu)如圖3所示,該系統(tǒng)中包括遠(yuǎn)程數(shù)據(jù)服務(wù)器、推送服務(wù)器和Web服務(wù)器。
遠(yuǎn)程數(shù)據(jù)服務(wù)器,用于向網(wǎng)頁Web服務(wù)器提供數(shù)據(jù)。推送服務(wù)器,用于確定遠(yuǎn)程數(shù)據(jù)服務(wù)器向網(wǎng)頁Web服務(wù)器提供的數(shù)據(jù)發(fā)生變化時或監(jiān)控到Web服務(wù)器首次請求連接遠(yuǎn)程數(shù)據(jù)服務(wù)器時,從遠(yuǎn)程數(shù)據(jù)服務(wù)器獲取提供給Web服務(wù)器的數(shù)據(jù);以及推送服務(wù)器將獲取的數(shù)據(jù)封裝成Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu),向Web服務(wù)器推送。Web服務(wù)器,用于接收推送服務(wù)器推送的數(shù)據(jù)。其中,數(shù)據(jù)推送服務(wù)器的結(jié)構(gòu)如圖4所示,包括:數(shù)據(jù)獲取模塊11和推送模塊12。數(shù)據(jù)獲取模塊11,用于確定遠(yuǎn)程數(shù)據(jù)服務(wù)器向網(wǎng)頁Web服務(wù)器提供的數(shù)據(jù)發(fā)生變化時或監(jiān)控到Web服務(wù)器首次請求連接遠(yuǎn)程數(shù)據(jù)服務(wù)器時,從遠(yuǎn)程數(shù)據(jù)服務(wù)器獲取提供給Web服務(wù)器的數(shù)據(jù)。推送模塊12,用于將獲取的數(shù)據(jù)封裝成Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu),向Web服務(wù)器推送。優(yōu)選的,上述推送模塊12,具體用于根據(jù)預(yù)先建立推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系,向?qū)?yīng)的Web服務(wù)器推送數(shù)據(jù)。本申請的數(shù)據(jù)推送系統(tǒng),考慮在Web服務(wù)器和遠(yuǎn)程數(shù)據(jù)服務(wù)器(即數(shù)據(jù)庫)之間架設(shè)一臺代理數(shù)據(jù)推送功能的服務(wù)器——推送服務(wù)器,由推送服務(wù)器從遠(yuǎn)程數(shù)據(jù)服務(wù)器中獲取數(shù)據(jù)并初步篩選,依據(jù)統(tǒng)一的業(yè)務(wù)邏輯生成Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu),由推送服務(wù)器將數(shù)據(jù)推送給Web服務(wù)器。推送服務(wù)器在其生命周期的絕大部分時間里都在執(zhí)行數(shù)據(jù)推送任務(wù)。當(dāng)多臺Web服務(wù)器同時請求數(shù)據(jù)時,推送服務(wù)器可以將它們的請求放到一個推送隊列里,按照順序依次進(jìn)行數(shù)據(jù)推送。推送服務(wù)器能夠監(jiān)控到集群布置的Web服務(wù)器的數(shù)據(jù)獲取行為和遠(yuǎn)程數(shù)據(jù)服務(wù)器的數(shù)據(jù)更新行為,例如,針對某臺Web服務(wù)器進(jìn)行單獨(dú)的數(shù)據(jù)更新,那么就需要知道本次更新的Web服務(wù)器連接的是哪臺遠(yuǎn)程數(shù)據(jù)服務(wù)器,需要更新的是什么類型的數(shù)據(jù),然后在這臺遠(yuǎn)程數(shù)據(jù)服務(wù)器上,根據(jù)遠(yuǎn)程數(shù)據(jù)服務(wù)器和Web服務(wù)器之間保持的長連接將數(shù)據(jù)推送至IJ Web服務(wù)器。上述系統(tǒng)將Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu)改為在推送服務(wù)器統(tǒng)一生成,保證了Web服務(wù)器接收到的數(shù)據(jù)的準(zhǔn)確性和一致性。而且由于Web服務(wù)器只負(fù)責(zé)接收推送服務(wù)器推送過來的數(shù)據(jù)以及進(jìn)行必要的反序列化工作,所以在一定程度上避免了 Web服務(wù)器在生成數(shù)據(jù)的過程中存在的宕機(jī)風(fēng)險。實(shí)施例二:本申請實(shí)施例二提供的數(shù)據(jù)推送系統(tǒng),其結(jié)構(gòu)如圖5所示,該系統(tǒng)與圖3所示的系統(tǒng)不同的是設(shè)置了 2個以上的推送服務(wù)器。當(dāng)推送服務(wù)器設(shè)置有多個時,推送服務(wù)器具體用于根據(jù)預(yù)先建立推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系,向?qū)?yīng)的Web服務(wù)器推送數(shù)據(jù)。隨著業(yè)務(wù)規(guī)模的擴(kuò)大,Web服務(wù)器所需要的數(shù)據(jù)類型可能會由一開始的單一類型變?yōu)槎喾N類型,各個類型數(shù)據(jù)包的大小也會不斷增長,連接到推送服務(wù)器上的Web服務(wù)器的數(shù)量也會越來越多。業(yè)務(wù)規(guī)模的膨脹帶來的直接后果就是推送隊列里的Web服務(wù)器等待服務(wù)的時間越來越長,最終推送服務(wù)器就達(dá)到其性能推送瓶頸。為了分散壓力,減少總的推送時間,可以將推送服務(wù)器改為集群模式部署。當(dāng)Web服務(wù)器啟動時,推送服務(wù)器可以按照對應(yīng)關(guān)系向各自負(fù)責(zé)的Web服務(wù)器推送數(shù)據(jù),其中,對應(yīng)關(guān)系可以由各個推送服務(wù)器自己維護(hù),也可以有另外的一個專門的服務(wù)器進(jìn)行維護(hù),則Web服務(wù)器啟動時,獲取當(dāng)前提供推送服務(wù)的推送服務(wù)器列表,然后隨機(jī)選擇一臺推送服務(wù)器進(jìn)行連接。實(shí)施例三:當(dāng)Web服務(wù)器和推送服務(wù)器采用圖5的部署模式時,就需要考慮對服務(wù)器集群監(jiān)控和管理控制的問題:如何才能在一臺獨(dú)立的服務(wù)器上控制集群內(nèi)所有推送服務(wù)器的推送行為,具體包括針對某臺Web服務(wù)器單獨(dú)進(jìn)行數(shù)據(jù)推送,監(jiān)控整個集群的運(yùn)行狀態(tài)等等。同時這臺實(shí)現(xiàn)控制功能的服務(wù)器不能成為集群的單點(diǎn)。本申請實(shí)施例三提供的數(shù)據(jù)推送系統(tǒng),由專門的目錄服務(wù)器維護(hù)推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系,其結(jié)構(gòu)如圖6所示,該系統(tǒng)中設(shè)置了 2個以上的數(shù)據(jù)推送服務(wù)器和目錄服務(wù)器。其中:目錄服務(wù)器,用于維護(hù)推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系;在Web服務(wù)器成功連接到推送服務(wù)器時,在推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系中添加Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄;在Web服務(wù)器與推送服務(wù)器的連接失效時,在推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系中刪除相應(yīng)的Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄。目錄服務(wù)器中存儲有Web服務(wù)器分組信息、Web服務(wù)器與所連接的推送服務(wù)器的對應(yīng)關(guān)系,具體可以是IP地址的對應(yīng)關(guān)系,其一般用于維護(hù)與對應(yīng)關(guān)系有關(guān)的業(yè)務(wù)邏輯夕卜,不負(fù)責(zé)具體的推送或者保持連接等集群的業(yè)務(wù)邏輯處理,所以目錄服務(wù)器的宕機(jī)不會影響到Web服務(wù)器與推送服務(wù)器集群的正常工作。推送服務(wù)器在成功與某臺Web服務(wù)器建立連接后,需要將本次連接的信息更新目錄服務(wù)器上,當(dāng)連接失效后,目錄服務(wù)器會自動將該條連接信息刪除。實(shí)現(xiàn)該功能的目錄服務(wù)器可以以信息樹的形式組織Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄,圖7所示為目錄服務(wù)器的信息樹原理圖。目錄服務(wù)器根據(jù)設(shè)定的分組策略對Web服務(wù)器進(jìn)行分組,按照分組情況建立信息樹;其中,信息樹的根節(jié)點(diǎn)下的第一級子節(jié)點(diǎn)為數(shù)據(jù)類型信息,第二級子節(jié)點(diǎn)為每個數(shù)據(jù)類型對應(yīng)的Web服務(wù)器分組;第三級子節(jié)點(diǎn)為每個Web服務(wù)器分組下Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄;當(dāng)Web服務(wù)器成功連接到推送服務(wù)器時,根據(jù)Web服務(wù)器所需要的數(shù)據(jù)類型和所屬的Web服務(wù)器分組,確定要更新第三級子節(jié)點(diǎn)的的位置,實(shí)現(xiàn)更新Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄;在Web服務(wù)器與推送服務(wù)器的連接失效時,刪除相應(yīng)的第三級子節(jié)點(diǎn)。如圖7所示的信息樹,其根節(jié)點(diǎn)(root)下面的第一級子節(jié)點(diǎn)是根據(jù)業(yè)務(wù)邏輯劃分的不同數(shù)據(jù)類型信息,如全國的省市區(qū)數(shù)據(jù),全國的5A景點(diǎn)數(shù)據(jù)。數(shù)據(jù)類型信息的子節(jié)點(diǎn)(第二級子節(jié)點(diǎn))是Web服務(wù)器分組,即每個數(shù)據(jù)類型信息對應(yīng)的需要向哪個或哪幾個Web服務(wù)器分組推送,這個一般與運(yùn)行在Web服務(wù)器上的應(yīng)用有關(guān),一個應(yīng)用對應(yīng)一個分組,這樣可以將不同應(yīng)用的連接相互區(qū)分開,后期可以針對不同應(yīng)用制定不同的推送策略;如圖7中所示的數(shù)據(jù)類型A(Date-A)對應(yīng)的分組為分組I (Groupl)和分組2 (Group2),數(shù)據(jù)類型B(Date-B)對應(yīng)的分組為分組I (Groupl)和分組3 (Group3),則數(shù)據(jù)類型A向分組I和分組2中的Web服務(wù)器推送,數(shù)據(jù)類型B向分組I和分組3中的Web服務(wù)器推送。Web服務(wù)器分組的子節(jié)點(diǎn)是Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄(如圖7中所示的C-S),對應(yīng)關(guān)系記錄可以包括Web服務(wù)器的IP地址、連接的推送服務(wù)器的IP地址,最后一次推送的時間等等。當(dāng)創(chuàng)建Web服務(wù)器分組的子節(jié)點(diǎn)時若發(fā)現(xiàn)Web服務(wù)器分組、數(shù)據(jù)類型等上層節(jié)點(diǎn)已經(jīng)存在,則不需要在進(jìn)行重復(fù)創(chuàng)建,若不存在,則需要進(jìn)行創(chuàng)建。目錄服務(wù)器除了保存Web服務(wù)器和推送服務(wù)器的對應(yīng)關(guān)系記錄等連接信息外,還可具備事件通知功能。當(dāng)推送服務(wù)器將本機(jī)與Web服務(wù)器的連接信息寫到目錄服務(wù)器上時,同時會注冊觀察者事件到信息樹的葉子節(jié)點(diǎn)(對應(yīng)關(guān)系記錄這一層的節(jié)點(diǎn))和葉子節(jié)點(diǎn)的父節(jié)點(diǎn)(Web服務(wù)器分組節(jié)點(diǎn))上,當(dāng)觀察的節(jié)點(diǎn)數(shù)據(jù)發(fā)生變化時,目錄服務(wù)器發(fā)出通知消息,推送服務(wù)器收到通知消息后,可進(jìn)行一些業(yè)務(wù)邏輯的處理。例如,需要針對某臺Web服務(wù)器進(jìn)行單獨(dú)的數(shù)據(jù)推送,只需要修改目錄服務(wù)器上對應(yīng)葉子節(jié)點(diǎn)的數(shù)據(jù),推送服務(wù)器收到通知后就會觸發(fā)一次新的推送。同樣,如果需要針對某組Web服務(wù)器進(jìn)行單獨(dú)的數(shù)據(jù)推送,只需要修改目錄服務(wù)器上的對應(yīng)Web服務(wù)器分組節(jié)點(diǎn)的數(shù)據(jù)就可以了。相應(yīng)的,推送服務(wù)器根據(jù)數(shù)據(jù)類型確定對應(yīng)的信息樹的中第一級子節(jié)點(diǎn),根據(jù)確定第一級子節(jié)點(diǎn)下的第二級子節(jié)點(diǎn)查找需要推送數(shù)據(jù)的Web服務(wù)器分組,根據(jù)第二級子節(jié)點(diǎn)下的第三級子節(jié)點(diǎn)查找每個Web服務(wù)器分組下Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄,向?qū)?yīng)的Web服務(wù)器推送獲取的數(shù)據(jù)。圖8所示為圖6所示系統(tǒng)中目錄服務(wù)器監(jiān)控到節(jié)點(diǎn)變化時的數(shù)據(jù)推送的流程圖。如圖8中的帶箭頭的線I所示,目錄服務(wù)器信息樹發(fā)生節(jié)點(diǎn)變化,如圖8中的帶箭頭的線2所示,目錄服務(wù)器向推送服務(wù)器提供監(jiān)控到的節(jié)點(diǎn)變化信息,如圖8中的帶箭頭的線3目錄服務(wù)器根據(jù)節(jié)點(diǎn)變化信息可以獲知道Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄的變化,從而可以向相應(yīng)的Web服務(wù)器推送數(shù)據(jù)。上述方法和系統(tǒng)還可以在數(shù)據(jù)推送時加入必要的安全策略,來保證數(shù)據(jù)推送到可靠性,由于目錄服務(wù)器上保存了完整的集群狀態(tài)信息,還可以做許多的業(yè)務(wù)擴(kuò)展,如集群狀態(tài)的實(shí)時展示,集群內(nèi)機(jī)器宕機(jī)的報警提示等等。引入了目錄服務(wù)器的數(shù)據(jù)推送集群,很好的分離了集群核心的連接推送功能和非核心的管理監(jiān)控功能,兩部分功能均可以方便的進(jìn)行水平擴(kuò)展和維護(hù)升級,互不影響。本申請實(shí)施例提供上述方法及系統(tǒng)是解決高訪問量網(wǎng)站性能問題的一種有效手段,通過推送服務(wù)器實(shí)現(xiàn)主動地向Web服務(wù)器推送數(shù)據(jù),采用推送不常變動數(shù)據(jù)的方式到Web服務(wù)器上,解決Web服務(wù)器頻繁連接遠(yuǎn)程數(shù)據(jù)服務(wù)器(如數(shù)據(jù)庫)帶來的性能開銷。并能夠由目錄服務(wù)器的樹形節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)功能,實(shí)現(xiàn)集群布置的Web服務(wù)器和推送服務(wù)器的推送集群完整監(jiān)控,實(shí)時監(jiān)控集群內(nèi)機(jī)器的數(shù)據(jù)更新狀態(tài),針對某些服務(wù)器單獨(dú)做數(shù)據(jù)更新等等,實(shí)現(xiàn)簡單、方便,便于監(jiān)控管理。顯然,本領(lǐng)域的技術(shù)人員可以對本申請進(jìn)行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)推送方法,其特征在于,包括: 推送服務(wù)器確定遠(yuǎn)程數(shù)據(jù)服務(wù)器向網(wǎng)頁Web服務(wù)器提供的數(shù)據(jù)發(fā)生變化時或監(jiān)控到Web服務(wù)器首次請求連接遠(yuǎn)程數(shù)據(jù)服務(wù)器時,從遠(yuǎn)程數(shù)據(jù)服務(wù)器獲取提供給Web服務(wù)器的數(shù)據(jù); 推送服務(wù)器將獲取的數(shù)據(jù)封裝成Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu),向Web服務(wù)器推送。
2.如權(quán)利要求1所述的方法,其特征在于,所述推送服務(wù)器為多個,根據(jù)預(yù)先建立推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系,向?qū)?yīng)的Web服務(wù)器推送數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其特征在于,還包括:通過設(shè)置的目錄服務(wù)器維護(hù)推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系; 所述目錄服務(wù)器在Web服務(wù)器成功連接到推送服務(wù)器時,在推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系中添加Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄;在Web服務(wù)器與推送服務(wù)器的連接失效時,在推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系中刪除相應(yīng)的Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄。
4.如權(quán)利要求3所述的方法,其特征在于,所述通過設(shè)置的目錄服務(wù)器維護(hù)推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系,包括: 目錄服務(wù)器根據(jù)設(shè)定的分組策略對Web服務(wù)器進(jìn)行分組,按照分組情況建立信息樹;其中,所述信息樹的根節(jié)點(diǎn)下的第一級子節(jié)點(diǎn)為數(shù)據(jù)類型信息,第二級子節(jié)點(diǎn)為每個數(shù)據(jù)類型對應(yīng)的Web服務(wù)器分組;第三級子節(jié)點(diǎn)為每個Web服務(wù)器分組下Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄; 當(dāng)Web服務(wù)器成功連接到推送服務(wù)器時,根據(jù)Web服務(wù)器所需要的數(shù)據(jù)類型和所屬的Web服務(wù)器分組,確定要更新第三級子節(jié)點(diǎn)的的位置,實(shí)現(xiàn)下更新Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄^Web服務(wù) 器與推送服務(wù)器的連接失效時,刪除相應(yīng)的第三級子節(jié)點(diǎn)。
5.如權(quán)利要求4所述的方法,其特征在于,所述目錄服務(wù)器根據(jù)設(shè)定的分組策略對Web服務(wù)器進(jìn)行分組,具體包括根據(jù)Web服務(wù)器需要的數(shù)據(jù)類型信息對Web服務(wù)器進(jìn)行分組;其中所述數(shù)據(jù)類型信息包括數(shù)據(jù)類型和/或數(shù)據(jù)版本。
6.如權(quán)利要求4所述的方法,其特征在于,所述推送服務(wù)器將獲取的數(shù)據(jù)向Web服務(wù)器推送的過程,包括: 所述推送服務(wù)器根據(jù)數(shù)據(jù)類型確定對應(yīng)的信息樹的中第一級子節(jié)點(diǎn),根據(jù)確定第一級子節(jié)點(diǎn)下的第二級子節(jié)點(diǎn),查找需要推送數(shù)據(jù)的Web服務(wù)器分組,根據(jù)第二級子節(jié)點(diǎn)下的第三級子節(jié)點(diǎn),查找每個Web服務(wù)器分組下Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄,向?qū)?yīng)的Web服務(wù)器推送獲取的數(shù)據(jù)。
7.一種數(shù)據(jù)推送系統(tǒng),其特征在于,包括: 遠(yuǎn)程數(shù)據(jù)服務(wù)器,用于向網(wǎng)頁Web服務(wù)器提供數(shù)據(jù); 推送服務(wù)器,用于確定遠(yuǎn)程數(shù)據(jù)服務(wù)器向網(wǎng)頁Web服務(wù)器提供的數(shù)據(jù)發(fā)生變化時或監(jiān)控到Web服務(wù)器首次請求連接遠(yuǎn)程數(shù)據(jù)服務(wù)器時,從遠(yuǎn)程數(shù)據(jù)服務(wù)器獲取提供給Web服務(wù)器的數(shù)據(jù);以及推送服務(wù)器將獲取的數(shù)據(jù)封裝成Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu),向Web服務(wù)器推送; Web服務(wù)器,用于接收推送服務(wù)器推送的數(shù)據(jù)。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述推送服務(wù)器為多個;所述推送服務(wù)器,具體用于根據(jù)預(yù)先建立推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系,向?qū)?yīng)的Web服務(wù)器推送數(shù)據(jù)。
9.如權(quán)利要求7所述的系統(tǒng),其特征在于,還包括: 目錄服務(wù)器,用于維護(hù)推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系;在Web服務(wù)器成功連接到推送服務(wù)器時,在推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系中添加Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄;在Web服務(wù)器與推送服務(wù)器的連接失效時,在推送服務(wù)器和Web服務(wù)器的對應(yīng)關(guān)系中刪除相應(yīng)的Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄; 其中,所述目錄服務(wù)器具體用于: 根據(jù)設(shè)定的分組策略對Web服務(wù)器進(jìn)行分組,按照分組情況建立信息樹;其中所述信息樹的根節(jié)點(diǎn)下的第一級子節(jié)點(diǎn)為數(shù)據(jù)類型信息,第二級子節(jié)點(diǎn)為每個數(shù)據(jù)類型對應(yīng)的Web服務(wù)器分組;第三級子節(jié)點(diǎn)為每個Web服務(wù)器分組下Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄; 當(dāng)Web服務(wù)器成功連接到推送服務(wù)器時,根據(jù)Web服務(wù)器所需要的數(shù)據(jù)類型和所屬的Web服務(wù)器分組,確定要更新第三級子節(jié)點(diǎn)的的位置,實(shí)現(xiàn)下更新Web服務(wù)器與推送服務(wù)器的對應(yīng)關(guān)系記錄;在Web服務(wù)器與推送服務(wù)器的連接失效時,刪除相應(yīng)的第三級子節(jié)點(diǎn)。
10.一種數(shù)據(jù)推送服務(wù)器,其特征在于,包括: 數(shù)據(jù)獲取模塊,用于確定遠(yuǎn)程數(shù)據(jù)服務(wù)器向網(wǎng)頁Web服務(wù)器提供的數(shù)據(jù)發(fā)生變化時或監(jiān)控到Web服務(wù)器首次請求連接遠(yuǎn)程數(shù)據(jù)服務(wù)器時,從遠(yuǎn)程數(shù)據(jù)服務(wù)器獲取提供給Web服務(wù)器的數(shù)據(jù); 推送模塊,用于將獲取的數(shù)據(jù)封裝成Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu),向Web服務(wù)器推`送。
全文摘要
本申請公開了一種數(shù)據(jù)推送方法、系統(tǒng)及裝置,該方法包括推送服務(wù)器確定遠(yuǎn)程數(shù)據(jù)服務(wù)器向網(wǎng)頁Web服務(wù)器提供的數(shù)據(jù)發(fā)生變化時或監(jiān)控到Web服務(wù)器首次請求連接遠(yuǎn)程數(shù)據(jù)服務(wù)器時,從遠(yuǎn)程數(shù)據(jù)服務(wù)器獲取提供給Web服務(wù)器的數(shù)據(jù);推送服務(wù)器將獲取的數(shù)據(jù)封裝成Web服務(wù)器所需要的數(shù)據(jù)結(jié)構(gòu),向Web服務(wù)器推送。該方法以主動推送的方式實(shí)現(xiàn)數(shù)據(jù)傳送,提高了數(shù)據(jù)推送的速度和效率。
文檔編號H04L29/08GK103108002SQ20111035543
公開日2013年5月15日 申請日期2011年11月10日 優(yōu)先權(quán)日2011年11月10日
發(fā)明者崔顧榮, 胡旻 申請人:阿里巴巴集團(tuán)控股有限公司