一種緩存數(shù)據(jù)處理方法和系統(tǒng)的制作方法
【專利摘要】本申請?zhí)峁┝艘环N緩存數(shù)據(jù)處理方法和系統(tǒng),涉及計算機【技術領域】。所述方法包括:針對每一第一服務器,第二服務器記錄第一服務器標識;每當公用數(shù)據(jù)出現(xiàn)變更,第二服務器根據(jù)記錄的各第一服務器標識通知第一服務器對緩存中的公用數(shù)據(jù)進行更新;第二服務器監(jiān)控第一服務器是否更新成功。本申請?zhí)峁┕脭?shù)據(jù)的服務器為主動操作主體,在本服務器中的公用數(shù)據(jù)出現(xiàn)變更后,由第二服務器主動發(fā)起整個公用數(shù)據(jù)更新流程,而避免了第一服務器由于在對公用數(shù)據(jù)未知的情況下,需要保持不斷對第二服務器公用數(shù)據(jù)的獲取,從而減少了硬件資源和網絡資源的浪費;降低了第一服務器的負載,提高了第一服務器對具體應用處理的效率,并且可降低維護成本。
【專利說明】一種緩存數(shù)據(jù)處理方法和系統(tǒng)
【技術領域】
[0001]本申請涉及計算機【技術領域】,特別是涉及一種緩存數(shù)據(jù)處理方法和系統(tǒng)。
【背景技術】
[0002]現(xiàn)在的大型互聯(lián)網應用系統(tǒng)一般采用分布式架構,將負責不同功能的業(yè)務功能單元分解到不同的應用系統(tǒng)中去,這些各自負責不同功能的應用系統(tǒng)最終又聚合成為一個能夠提供業(yè)務價值的整體應用系統(tǒng)。其網絡環(huán)境相對復雜。為了應對互聯(lián)網應用的巨大請求量,分布式架構系統(tǒng)除了按照功能進行分解之外,提供各種業(yè)務功能的應用系統(tǒng)還需要使用多臺服務器來支撐這些請求量。
[0003]而在分布式架構中,在負責不同業(yè)務功能的應用系統(tǒng)之間,通常會存在一些各個應用系統(tǒng)都需要理解、使用的公用數(shù)據(jù),這些公用數(shù)據(jù)使用極其頻繁,不適合在兩個或多個系統(tǒng)之間互相傳遞,通常需要在計算機內存中將這些數(shù)據(jù)保存起來,在實際使用數(shù)據(jù)時直接訪問使用這些在內存中的數(shù)據(jù)。這種在計算機內存中保存數(shù)據(jù)的方式稱為數(shù)據(jù)緩存。
[0004]在分布式環(huán)境下,各個應用系統(tǒng)之間、各臺服務器之間的內存數(shù)據(jù)都是互相獨立的,在需要被數(shù)據(jù)緩存的數(shù)據(jù)發(fā)生變化時,應該要保證所有系統(tǒng)、所有服務器內存中的緩存數(shù)據(jù)同時被更新,如果沒有同時更新有可能出現(xiàn)數(shù)據(jù)不一致進而引發(fā)業(yè)務錯誤。
[0005]因此,由于在分布式環(huán)境下多個不同服務器會需要使用相同的重要基礎數(shù)據(jù),這些重要基礎數(shù)據(jù)由于被使用頻率極高,需要以緩存形式存放在本地內存中。而如何在多個不同服務器之間保持這些重要數(shù)據(jù)的全局一致性一直是非常難以解決的一個技術問題。
[0006]下面舉個例子說明分布式系統(tǒng)中各個應用系統(tǒng)之間公用數(shù)據(jù)同步的重要性和必要性:
[0007]參照圖1,在一個互聯(lián)網購物系統(tǒng)中,有一個交易系統(tǒng)和一個發(fā)貨系統(tǒng),分別提供交易功能和發(fā)貨功能。兩個系統(tǒng)各有3組服務器來應對用戶的請求。
[0008]公用數(shù)據(jù)包括“商品類目”,由數(shù)據(jù)提供服務器提供。交易系統(tǒng)需要使用商品類目數(shù)據(jù)給用戶展示商品,發(fā)貨系統(tǒng)需要使用商品類目數(shù)據(jù)給工作人員進行貨物的分類發(fā)放。兩個系統(tǒng)對商品類型數(shù)據(jù)的使用都非常頻繁,需要緩存在服務器內存中保證效率。公用數(shù)據(jù)“商品類目”由數(shù)據(jù)提供服務器提供,而交易系統(tǒng)和發(fā)貨系統(tǒng)的服務器均是數(shù)據(jù)使用服務器。
[0009]數(shù)據(jù)提供服務器的商品類目數(shù)據(jù)會隨著業(yè)務的發(fā)展發(fā)生變化,如果兩個系統(tǒng)之間的商品類目數(shù)據(jù)發(fā)生不一致會出現(xiàn)用戶購買的貨物無法發(fā)貨的業(yè)務錯誤。
[0010]現(xiàn)有技術中,數(shù)據(jù)提供服務器提供數(shù)據(jù)查詢接口,數(shù)據(jù)使用服務器通過查詢接口得到數(shù)據(jù)然后緩存在自己的數(shù)據(jù)緩存中,由于數(shù)據(jù)可能會發(fā)生變化,數(shù)據(jù)使用服務器會通過應用程序隔一段時間就向數(shù)據(jù)提供發(fā)發(fā)起查詢請求,將數(shù)據(jù)提供服務器的數(shù)據(jù)獲取到數(shù)據(jù)使用服務器,在數(shù)據(jù)使用服務器判斷是否需要更新,如果需要,則將獲取到的數(shù)據(jù)更新到本地緩存,以保證自己的數(shù)據(jù)緩存是最新的。
[0011]上述過程中,由于是由數(shù)據(jù)使用服務器定時的主動去將數(shù)據(jù)提供服務器的數(shù)據(jù)全部獲取到本地,再進行判斷更新,這種定時拉取的方式存在以下幾種缺點:
[0012]1、無論數(shù)據(jù)是否變化都需要隔一段時間就向數(shù)據(jù)提供服務器拉取數(shù)據(jù),將數(shù)據(jù)提供服務器的提供的公用數(shù)據(jù)抓取到本地進行處理,而在數(shù)據(jù)提供服務器的公用數(shù)據(jù)沒有變化的情況下,這種拉取動作嚴重浪費硬件資源和網絡資源。
[0013]2、由于數(shù)據(jù)提供服務器是被動的,無法知道有多少數(shù)據(jù)使用服務器在使用它提供的數(shù)據(jù),對于整個系統(tǒng)來說,非常不方便對數(shù)據(jù)使用服務器進行監(jiān)控和管理,維護成本高。
【發(fā)明內容】
[0014]本申請所要解決的技術問題之一是提供一種緩存數(shù)據(jù)處理方法和系統(tǒng),解決數(shù)據(jù)使用方在不知數(shù)據(jù)提供方數(shù)據(jù)更新狀態(tài)的情況下主動拉取導致浪費硬件資源和網絡資源,維護成本高等問題。
[0015]為了解決上述問題,本申請公開了一種緩存數(shù)據(jù)處理方法,包括:
[0016]針對每一第一服務器,第二服務器記錄第一服務器標識;
[0017]每當公用數(shù)據(jù)出現(xiàn)變更,第二服務器根據(jù)記錄的各第一服務器標識通知第一服務器對緩存中的公用數(shù)據(jù)進行更新;
[0018]第二服務器監(jiān)控第一服務器是否更新成功。
[0019]優(yōu)選的,所述第二服務器監(jiān)控第一服務器是否更新成功包括:
[0020]接收第一服務器返回的更新結果消息;
[0021]根據(jù)所述更新結果消息,判斷相應第一服務器是否更新成功。
[0022]優(yōu)選的,每當公用數(shù)據(jù)出現(xiàn)變更之后還包括:
[0023]第二服務器對變更后的公用數(shù)據(jù)生成版本信息。
[0024]優(yōu)選的,所述根據(jù)所述更新結果消息,判斷相應第一服務器是否更新成功后,還包括:
[0025]根據(jù)所述更新結果消息,記錄第一服務器當前成功緩存的公用數(shù)據(jù)的版本信息。
[0026]優(yōu)選的,還包括:
[0027]第二服務器根據(jù)公用數(shù)據(jù)更新后版本信息,與當前記錄的第一服務器的版本信息,判斷并記錄第二服務器中的公用數(shù)據(jù)與所述第一服務器的公用數(shù)據(jù)之間的數(shù)據(jù)差異標識。
[0028]優(yōu)選的,所述第二服務器根據(jù)記錄的各第一服務器標識通知第一服務器對緩存中的公用數(shù)據(jù)進行更新包括:
[0029]第二服務器根據(jù)相應第一服務器標識,通知第一服務器將數(shù)據(jù)差異標識相應的差異數(shù)據(jù)更新至緩存中。
[0030]優(yōu)選的,所述第二服務器根據(jù)記錄的各第一服務器標識通知第一服務器對緩存中的公用數(shù)據(jù)進行更新包括:
[0031]每當公用數(shù)據(jù)出現(xiàn)變更后,第二服務器定時檢查第一服務器的版本信息是否與當前最新的版本信息一致;如果不一致,則通知第二服務器根據(jù)記錄的第一服務器標識通知所述第一服務器對緩存中的公用數(shù)據(jù)進行更新。
[0032]優(yōu)選的,所述根據(jù)所述更新結果消息,判斷相應第一服務器是否更新成功后包括:[0033]如果所述更新結果消息包括第一服務器的緩存更新成功消息,則更新當前記錄的對應該第一服務器的版本信息為包括變更公用數(shù)據(jù)的版本信息;
[0034]如果所述更新結果消息包括第一服務器的緩存更新失敗消息,則保留當前記錄的對應該第一服務器的版本信息,并保留數(shù)據(jù)差異標識。
[0035]優(yōu)選的,所述第二服務器監(jiān)控第一服務器是否更新成功之后還包括:
[0036]如果判斷第一服務器更新失敗,第二服務器則重新根據(jù)記錄的第一服務器標識,通知第一服務器從對緩存中公用數(shù)據(jù)進行更新;
[0037]或者,生成針對所述第一服務器的更新失敗報警信息。
[0038]相應的,本申請還公開了一種緩存數(shù)據(jù)處理系統(tǒng),包括:
[0039]第二服務器和至少一個第一服務器;
[0040]所述第二服務器包括:
[0041]記錄模塊,用于針對每一第一服務器,第二服務器記錄第一服務器標識;
[0042]變更通知模塊,用于每當公用數(shù)據(jù)出現(xiàn)變更,第二服務器根據(jù)記錄的各第一服務器標識通知第一服務器對緩存中的公用數(shù)據(jù)進行更新;
[0043]更新判斷模塊,用于第二服務器監(jiān)控第一服務器是否更新成功;
[0044]每個所述第一服務器用于從第二服務器獲取公用數(shù)據(jù),對該第一服務器緩存中公用數(shù)據(jù)進行更新。
[0045]與現(xiàn)有技術相比,本申請包括以下優(yōu)點:
[0046]1、本申請以第二服務器,即提供公用數(shù)據(jù)的服務器為主動操作主體,在本服務器中的公用數(shù)據(jù)出現(xiàn)變更后,由第二服務器主動發(fā)起整個公用數(shù)據(jù)更新流程,而避免了第一服務器由于在對公用數(shù)據(jù)未知的情況下,需要保持不斷對第二服務器公用數(shù)據(jù)的獲取,從而減少了硬件資源和網絡資源的浪費;降低了第一服務器的負載,提高了第一服務器對具體應用處理的效率。
[0047]2、本申請由于是作為數(shù)據(jù)提供方的第二服務器,對各個作為數(shù)據(jù)使用方的第一服務器的數(shù)據(jù)同步情況的實時監(jiān)控,可把控每個第一服務器的數(shù)據(jù)同步情況,能盡最大可能地保證緩存數(shù)據(jù)的一致性;并且,可非常方便的根據(jù)監(jiān)控情況對需要的第一服務器進行下一步處理,而不用在每個第一服務器側維護,降低維護成本。
【專利附圖】
【附圖說明】
[0048]圖1是一種分布式環(huán)境公用數(shù)據(jù)的使用示例圖;
[0049]圖2是本申請一種緩存數(shù)據(jù)處理方法實施例一的流程示意圖;
[0050]圖3是本申請一種緩存數(shù)據(jù)處理方法實施例二的流程示意圖;
[0051]圖4是本申請一種緩存數(shù)據(jù)處理系統(tǒng)實施例的結構示意圖。
【具體實施方式】
[0052]為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和【具體實施方式】對本申請作進一步詳細的說明。
[0053]對于分布式環(huán)境下需要使用相同數(shù)據(jù)(即公用數(shù)據(jù))的多個服務器,并且由于這些公用數(shù)據(jù)被使用頻率極高,為了保證服務器的處理速度和效率,需要以緩存的形式存儲在各自服務器的內存中,其中公用數(shù)據(jù)由專用的數(shù)據(jù)提供服務器提供。而為了保證整個分布式系統(tǒng)的穩(wěn)定和工作的正常,需要保持各個服務器緩存的公用數(shù)據(jù)一致,而為了保證多個不同的服務器之間上述各個服務器緩存的公用數(shù)據(jù)的全局一致性,本申請的核心思想之一在于:采用數(shù)據(jù)提供方在其公用數(shù)據(jù)變更時,主動根據(jù)記錄的各第一服務器標識通知第一服務器從緩存中對公用數(shù)據(jù)進行更新,并實時監(jiān)控更新結果。如此可減少了硬件資源和網絡資源的浪費,方便維護和管理整個系統(tǒng),降低了維護成本。
[0054]參照圖2,示出了本申請一種緩存數(shù)據(jù)處理方法實施例一的流程示意圖,具體可以包括:
[0055]步驟110,針對每一第一服務器,第二服務器記錄第一服務器標識;
[0056]在本申請中,第一服務器為公用數(shù)據(jù)使用方,比如圖1中的交易系統(tǒng)的服務器;第二服務器為公用數(shù)據(jù)提供方,比如提供圖1中所述商品類目的服務器。
[0057]那么,對于需要使用第二服務器提供的公用數(shù)據(jù)的第一服務器,第二服務器則對該第一服務器的第一服務器標識進行記錄。
[0058]優(yōu)選的,所述針對每一第一服務器,第二服務器記錄第一服務器標識包括:
[0059]步驟S111,第二服務器根據(jù)第一服務器第一次發(fā)送的更新請求,記錄所述第一服務器的第一服務器標識。
[0060]在數(shù)據(jù)使用方的第一服務器初次啟動時,需要第一次將公用數(shù)據(jù)存入第一服務器的緩存中,即第一次發(fā)送更新請求至第二服務器以獲取公用數(shù)據(jù)(其中為了確定數(shù)據(jù)傳送的源端和目的端,更新請求包括該第一服務器的標識),那么第二服務器則可根據(jù)該第一服務器發(fā)送的更新請求記錄其第一服務器標識。
[0061]步驟120,每當公用數(shù)據(jù)出現(xiàn)變更,第二服務器根據(jù)記錄的各第一服務器標識通知第一服務器對緩存中的公用數(shù)據(jù)進行更新;
[0062]在數(shù)據(jù)使用方的第一服務器初次啟動時,第一服務器可直接從第二服務器獲取公用數(shù)據(jù),然后將公用數(shù)據(jù)緩存至內存中。
[0063]對于公用數(shù)據(jù),當對其進行增加、刪除、修改等操作時,都存在數(shù)據(jù)的變更,即出現(xiàn)公用數(shù)據(jù)更新。比如對于前述商品類目,增加商品類目,刪除商品類目,修改商品類目等操作都會數(shù)據(jù)提供方提供的商品類目數(shù)據(jù)變更。
[0064]那么在公用數(shù)據(jù)的變更出現(xiàn)時,第二服務器則可根據(jù)其記錄的各第一服務器標識,通知第一服務器對緩存中的公用數(shù)據(jù)進行更新。
[0065]所述第二服務器則可根據(jù)其記錄的各第一服務器標識,通知第一服務器對緩存中的公用數(shù)據(jù)進行更新具體可包括:
[0066]步驟A121,第二服務器將變更后的公用數(shù)據(jù)推送至第一服務器,并通知第一服務器將當前的公用數(shù)據(jù)推送更新至緩存;
[0067]步驟A122,第一服務器接收到所述公用數(shù)據(jù)和所述通知后,將所述公用數(shù)據(jù)更新
至緩存中。
[0068]更新可以為第一服務器將到緩存中原公用數(shù)據(jù)全部替換為變更后的公用數(shù)據(jù)。
[0069]或者,可包括:步驟B121,第二服務器通知第一服務器需要更新公用數(shù)據(jù);
[0070]步驟B122,第一服務器接收到所述通知后,則主動從第二服務器獲變更新后的公用數(shù)據(jù);[0071]步驟123,將獲取到的公用數(shù)據(jù)更新至緩存。
[0072]其中,數(shù)據(jù)更新包括替換原數(shù)據(jù),增加新數(shù)據(jù)等操作。
[0073]優(yōu)選的每當公用數(shù)據(jù)出現(xiàn)變更之后還包括:
[0074]步驟S121,第二服務器對變更后的公用數(shù)據(jù)生成版本信息。
[0075]即本申請可通過對第二服務器中的公用數(shù)據(jù)進行版本化,比如初始的公用數(shù)據(jù)將其標記為版本1.00,當?shù)谝淮胃潞螅瑢⒏潞蟮墓脭?shù)據(jù)版本標記為1.01,如此方便后續(xù)對第一服務器公用數(shù)據(jù)進行監(jiān)控。
[0076]即進一步,所述第二服務器根據(jù)相應第一服務器標識,通知第一服務器將數(shù)據(jù)差異標識相應的差異數(shù)據(jù)更新至緩存中包括:
[0077]步驟S122,每當公用數(shù)據(jù)出現(xiàn)變更后,第二服務器定時檢查第一服務器的版本信息是否與當前最新的版本信息一致;如果不一致,則通知第二服務器根據(jù)記錄的第一服務器標識通知所述第一服務器對緩存中的公用數(shù)據(jù)進行更新。
[0078]比如,公用數(shù)據(jù)變更后的版本為1.01,而記錄的第一服務器的版本為1.00,則說
明第一服務器的版本低于第二服務器當前的版本,那么第一服務器就需要更新新版的公用數(shù)據(jù)。
[0079]步驟130,第二服務器監(jiān)控第一服務器是否更新成功。
[0080]對于第一服務器的更新操作,第二服務器監(jiān)控第一服務器是否更新成功。
[0081]在本申請中,當?shù)谝环掌鬟M行變更動作后,可生成一個更新結果消息,即更新成功或者更新失敗的消息,然后將該消息發(fā)送給第二服務器,第二服務器則可根據(jù)該消息監(jiān)控每個第一服務器是否更新成功。
[0082]所述第二服務器監(jiān)控第一服務器是否更新成功之后還包括:
[0083]步驟S131,在第一服務器更新后,如果判斷第一服務器更新失敗,第二服務器則重新根據(jù)記錄的第一服務器標識,通知第一服務器從對緩存中公用數(shù)據(jù)進行更新;
[0084]或者,步驟S132,生成針對所述第一服務器的更新失敗報警信息。
[0085]針對更新失敗的第一服務器的失敗報警信息可使技術人員在數(shù)據(jù)提供方側(第二服務器側)整體把握哪一臺或者多臺服務器更新失敗,從而進行相關處理,比如人工更新等。
[0086]現(xiàn)有技術中,數(shù)據(jù)提供方(第二服務器)提供數(shù)據(jù)查詢接口,數(shù)據(jù)使用方(第一服務器)通過查詢接口得到數(shù)據(jù)然后緩存在自己的數(shù)據(jù)緩存中,由于數(shù)據(jù)可能會發(fā)生變化,數(shù)據(jù)使用方會通過應用程序隔一段時間就向數(shù)據(jù)提供發(fā)發(fā)起查詢請求以保證自己的數(shù)據(jù)緩存是最新的。而這種“定時拉取模式”存在以下缺點:
[0087]1.無論數(shù)據(jù)是否變化都需要隔一段時間就向數(shù)據(jù)提供方拉取數(shù)據(jù),在數(shù)據(jù)沒有變化的情況下這種拉取動作是對硬件資源和網絡資源的浪費
[0088]2.由于數(shù)據(jù)提供方是被動的,無法知道有多少數(shù)據(jù)使用方在使用它提供的數(shù)據(jù)
[0089]3.數(shù)據(jù)提供方無法確定是否所有數(shù)據(jù)使用方都已經拿到了最新的數(shù)據(jù),如果數(shù)據(jù)使用方的定時拉取機制出現(xiàn)問題導致數(shù)據(jù)不同步也無法監(jiān)控,可能出現(xiàn)嚴重業(yè)務錯誤。
[0090]而本申請則可以第二服務器,即提供公用數(shù)據(jù)的服務器為主動操作主體,在本服務器中的公用數(shù)據(jù)出現(xiàn)變更后,由第二服務器主動發(fā)起整個公用數(shù)據(jù)更新流程,而避免了第一服務器由于在對公用數(shù)據(jù)未知的情況下,需要保持不斷對第二服務器公用數(shù)據(jù)的獲取,從而減少了硬件資源和網絡資源的浪費;降低了第一服務器的負載,提高了第一服務器對具體應用處理的效率。
[0091]并且本申請由于是作為數(shù)據(jù)提供方的第二服務器,對各個作為數(shù)據(jù)使用方的第一服務器的數(shù)據(jù)同步情況的實時監(jiān)控,可把控每個第一服務器的數(shù)據(jù)同步情況,能盡最大可能地保證緩存數(shù)據(jù)的一致性;并且,可非常方便的根據(jù)監(jiān)控情況對需要的第一服務器進行下一步處理,而不用在每個第一服務器側維護,降低維護成本。
[0092]并且本申請可避免由于如果數(shù)據(jù)使用方的定時拉取機制出現(xiàn)問題導致數(shù)據(jù)不同步的問題,監(jiān)控全面及時。
[0093]參照圖,3,示出了本申請一種緩存數(shù)據(jù)處理方法實施例二的流程示意圖,具體可以包括:
[0094]步驟210,第二服務器根據(jù)第一服務器第一次發(fā)送的更新請求,記錄所述第一服務器的第一服務器標識;當所述第一服務器更新公用數(shù)據(jù)成功后,第二服務器對應記錄所述第一服務器當前供應數(shù)據(jù)的版本信息;
[0095]那么對于初始每個第一服務器的初始狀態(tài),其更新成功后,第二服務器記錄的版本信息為第二服務器當前的版本信息。比如第一服務器初始狀態(tài)更新時,第二服務器的公用數(shù)據(jù)版本信息為1.00,那么第二服務器記錄該服務器的版本信息為1.00。
[0096]步驟220,第二服務器對變更后的公用數(shù)據(jù)生成版本信息;
[0097]比如第二服務器的公用數(shù)據(jù)增加了數(shù)據(jù)段,那么對于增加后的整個公用數(shù)據(jù)生成新的版本信息為1.01。
[0098]步驟230,第二服務器根據(jù)公用數(shù)據(jù)更新后版本信息,與當前記錄的第一服務器的版本信息,判斷并記錄第二服務器中的公用數(shù)據(jù)與所述第一服務器的公用數(shù)據(jù)之間的數(shù)據(jù)差異標識;
[0099]那么對于第二服務器記錄的每一個第一服務器,則可針對每個第一服務器判斷并記錄其第二服務器中的公用數(shù)據(jù)與所述第一服務器的公用數(shù)據(jù)之間的數(shù)據(jù)差異標識。比如對于第一服務器A,第二服務器記錄其當前的版本信息為1.00,而第二服務器當前的版本信息為1.01,那么對于第一服務器A來說,其與第二服務器的公用數(shù)據(jù)之間版本差異為(1.01-1.00),差異標識可記錄為LI。
[0100]步驟240,第二服務器根據(jù)相應第一服務器標識,通知第一服務器將數(shù)據(jù)差異標識相應的差異數(shù)據(jù)更新至緩存中;
[0101]當?shù)玫綌?shù)據(jù)差異標識后,說明該第一服務器需要更新數(shù)據(jù),那么第二服務器則可通知第一服務器將相應的差異數(shù)據(jù)進行更新即可,而不用全部更新,降低系統(tǒng)資源占用,提高更新速度。
[0102]該第二服務器通知第一服務器將數(shù)據(jù)差異標識相應的差異數(shù)據(jù)更新至緩存中,如實施例一所述,也可由服務器主動將差異數(shù)據(jù)發(fā)送至第一服務器進行更新,也可通知第一服務器進行更新而后等待第一服務器主動獲取數(shù)據(jù)進行更新。
[0103]步驟250,接收第一服務器返回的更新結果消息;
[0104]步驟260,根據(jù)所述更新結果消息,判斷相應第一服務器是否更新成功;如果所述更新結果消息包括第一服務器的緩存更新成功消息,轉入步驟270 ;如果所述更新結果消息包括第一服務器的緩存更新失敗消息,轉入步驟280 ;[0105]步驟270,則更新當前記錄的對應該第一服務器的版本信息為包括變更公用數(shù)據(jù)的版本信息;轉入步驟220,;
[0106]步驟280,保留當前記錄的對應該第一服務器的版本信息,并保留數(shù)據(jù)差異標識;轉入步驟290 ;
[0107]步驟290,第二服務器則重新根據(jù)記錄的第一服務器標識,通知第一服務器從對緩存中公用數(shù)據(jù)進行更新;或者,生成針對所述第一服務器的更新失敗報警信息,提示人工更新;如果更新成功,轉入步驟220 ;如果更新失敗,轉入步驟260。
[0108]本實施例可有效監(jiān)控第一服務器是否更新成功,并且可明確監(jiān)控各第一服務器哪些差異數(shù)據(jù)未更新成功,對每個第一服務器的監(jiān)控更具針對性,和統(tǒng)一性,管理方便,維護成本低。
[0109]參照圖4,示出了本申請一種緩存數(shù)據(jù)處理系統(tǒng)實施例的結構示意圖,具體可以包括:
[0110]第二服務器310和至少一個第一服務器;
[0111]所述第二服務器310包括:
[0112]記錄模塊311,用于針對每一第一服務器,第二服務器記錄第一服務器標識;
[0113]變更通知模塊312,用于每當公用數(shù)據(jù)出現(xiàn)變更,第二服務器根據(jù)記錄的各第一服務器標識通知第一服務器對緩存中的公用數(shù)據(jù)進行更新;
[0114]更新判斷模塊313,用于第二服務器監(jiān)控第一服務器是否更新成功;
[0115]每個所述第一服務器用于從第二服務器獲取公用數(shù)據(jù),對該第一服務器緩存中公用數(shù)據(jù)進行更新。
[0116]其中,所述更新判斷模塊包括:
[0117]結果接收模塊,用于接收第一服務器返回的更新結果消息;
[0118]更新判斷模塊,用于根據(jù)所述更新結果消息,判斷相應第一服務器是否更新成功。
[0119]其中,所述變更通知模塊還包括:
[0120]版本生成模塊,用于第二服務器對變更后的公用數(shù)據(jù)生成版本信息。
[0121]其中,還包括:
[0122]版本記錄模塊,用于根據(jù)所述更新結果消息,記錄第一服務器當前成功緩存的公用數(shù)據(jù)的版本信息。
[0123]其中,還包括:
[0124]差異記錄模塊,用于第二服務器根據(jù)公用數(shù)據(jù)更新后版本信息,與當前記錄的第一服務器的版本信息,判斷并記錄第二服務器中的公用數(shù)據(jù)與所述第一服務器的公用數(shù)據(jù)之間的數(shù)據(jù)差異標識。
[0125]其中,所述變更通知模塊包括:
[0126]差異更新通知模塊,用于第二服務器根據(jù)相應第一服務器標識,通知第一服務器將數(shù)據(jù)差異標識相應的差異數(shù)據(jù)更新至緩存中。
[0127]其中,所述變更通知模塊包括:
[0128]定時檢查通知模塊,用于每當公用數(shù)據(jù)出現(xiàn)變更后,第二服務器定時檢查第一服務器的版本信息是否與當前最新的版本信息一致;如果不一致,則通知第二服務器根據(jù)記錄的第一服務器標識通知所述第一服務器對緩存中的公用數(shù)據(jù)進行更新。[0129]其中,所述更新判斷模塊后包括:
[0130]第一判斷處理模塊,用于如果所述更新結果消息包括第一服務器的緩存更新成功消息,則更新當前記錄的對應該第一服務器的版本信息為包括變更公用數(shù)據(jù)的版本信息;
[0131]第一判斷處理模塊,用于如果所述更新結果消息包括第一服務器的緩存更新失敗消息,則保留當前記錄的對應該第一服務器的版本信息,并保留數(shù)據(jù)差異標識。
[0132]其中還包括:
[0133]第三判斷處理模塊,用于如果判斷第一服務器更新失敗,第二服務器則重新根據(jù)記錄的第一服務器標識,通知第一服務器從對緩存中公用數(shù)據(jù)進行更新;
[0134]或者,第四判斷處理模塊,用于生成針對所述第一服務器的更新失敗報警信息。
[0135]需要說明的是,對于上述方法實施例而言,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請并不受所描述的動作順序的限制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本申請所必須的。
[0136]對于系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
[0137]本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0138]本申請可用于眾多通用或專用的計算系統(tǒng)環(huán)境或配置中。例如:服務器計算機、多處理器系統(tǒng)、大型計算機、包括以上任何系統(tǒng)或設備的分布式計算環(huán)境等等。
[0139]本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結構等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設備在內的本地和遠程計算機存儲介質中。
[0140]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。
[0141]以上對本申請所提供的一種緩存數(shù)據(jù)處理方法和系統(tǒng),進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本申請的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。
【權利要求】
1.一種緩存數(shù)據(jù)處理方法,其特征在于,包括: 針對每一第一服務器,第二服務器記錄第一服務器標識; 每當公用數(shù)據(jù)出現(xiàn)變更,第二服務器根據(jù)記錄的各第一服務器標識通知第一服務器對緩存中的公用數(shù)據(jù)進行更新; 第二服務器監(jiān)控第一服務器是否更新成功。
2.根據(jù)權利要求1所述的方法,其特征在于,所述第二服務器監(jiān)控第一服務器是否更新成功包括: 接收第一服務器返回的更新結果消息; 根據(jù)所述更新結果消息,判斷相應第一服務器是否更新成功。
3.根據(jù)權利要求2所述的方法,其特征在于,每當公用數(shù)據(jù)出現(xiàn)變更之后還包括: 第二服務器對變更后的公用數(shù)據(jù)生成版本信息。
4.根據(jù)權利要求3所述的方法,其特征在于,所述根據(jù)所述更新結果消息,判斷相應第一服務器是否更新成功后,還包括: 根據(jù)所述更新結果消息,記錄第一服務器當前成功緩存的公用數(shù)據(jù)的版本信息。
5.根據(jù)權利要求4所述的方法,其特征在于,還包括: 第二服務器根據(jù)公用數(shù)據(jù)更新后版本信息,與當前記錄的第一服務器的版本信息,判斷并記錄第二服務器中的公用數(shù)據(jù)與`所述第一服務器的公用數(shù)據(jù)之間的數(shù)據(jù)差異標識。
6.根據(jù)權利要求5所述的方法,其特征在于,所述第二服務器根據(jù)記錄的各第一服務器標識通知第一服務器對緩存中的公用數(shù)據(jù)進行更新包括: 第二服務器根據(jù)相應第一服務器標識,通知第一服務器將數(shù)據(jù)差異標識相應的差異數(shù)據(jù)更新至緩存中。
7.根據(jù)權利要求5所述的方法,其特征在于,所述第二服務器根據(jù)記錄的各第一服務器標識通知第一服務器對緩存中的公用數(shù)據(jù)進行更新包括: 每當公用數(shù)據(jù)出現(xiàn)變更后,第二服務器定時檢查第一服務器的版本信息是否與當前最新的版本信息一致;如果不一致,則通知第二服務器根據(jù)記錄的第一服務器標識通知所述第一服務器對緩存中的公用數(shù)據(jù)進行更新。
8.根據(jù)權利要求5所述的方法,其特征在于,所述根據(jù)所述更新結果消息,判斷相應第一服務器是否更新成功后包括: 如果所述更新結果消息包括第一服務器的緩存更新成功消息,則更新當前記錄的對應該第一服務器的版本信息為包括變更公用數(shù)據(jù)的版本信息; 如果所述更新結果消息包括第一服務器的緩存更新失敗消息,則保留當前記錄的對應該第一服務器的版本信息,并保留數(shù)據(jù)差異標識。
9.根據(jù)權利要求1所述的方法,其特征在于,所述第二服務器監(jiān)控第一服務器是否更新成功之后還包括: 如果判斷第一服務器更新失敗,第二服務器則重新根據(jù)記錄的第一服務器標識,通知第一服務器從對緩存中公用數(shù)據(jù)進行更新; 或者,生成針對所述第一服務器的更新失敗報警信息。
10.一種緩存數(shù)據(jù)處理系統(tǒng),其特征在于,包括: 第二服務器和至少一個第一服務器;所述第二服務器包括: 記錄模塊,用于針對每一第一服務器,第二服務器記錄第一服務器標識; 變更通知模塊,用于每當公用數(shù)據(jù)出現(xiàn)變更,第二服務器根據(jù)記錄的各第一服務器標識通知第一服務器對緩存中的公用數(shù)據(jù)進行更新; 更新判斷模塊,用于第二服務器監(jiān)控第一服務器是否更新成功; 每個所述第一服務器用于從第二服務器獲取公用數(shù)據(jù),對該第一服務器緩存中公用數(shù)據(jù)進行更新。
【文檔編號】H04L29/08GK103780636SQ201210395520
【公開日】2014年5月7日 申請日期:2012年10月17日 優(yōu)先權日:2012年10月17日
【發(fā)明者】韓旻 申請人:阿里巴巴集團控股有限公司