麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種流計算應用中實現持久化的方法及裝置制造方法

文檔序號:6508096閱讀:187來源:國知局
一種流計算應用中實現持久化的方法及裝置制造方法
【專利摘要】本申請公開了一種流計算應用中實現持久化的方法及裝置,包括當前批次消息消費成功,根據第一起始偏移量和預先設置的持久化間隔,判斷是否需要進行持久化操作;在需要進行持久化操作時,按照第二起始偏移量指示的消息位置進行持久化處理,并在持久化成功后,將第一起始偏移量和第二起始偏移量均更新為下一批次消息的起始偏移量。本申請中的持久化操作是在持久化間隔后進行的,增大了磁盤持久化的時間間隔,從而大大提高實時計算效率。在故障恢復時,最多只需要重新消費持久化間隔內的批次的消息,避免了現有同步持久化中頻繁寫磁盤帶來的性能瓶頸,實時計算的消息吞吐性能提升了一個數量級;同時,將故障恢復帶來的延遲縮短到了秒級,不會影響實時性。
【專利說明】一種流計算應用中實現持久化的方法及裝置

【技術領域】
[0001]本申請涉及流計算技術,尤指一種流計算應用中是實現持久化的方法及裝置。

【背景技術】
[0002]通常,在流計算中將數據流稱為消息,而對數據流的一系列計算、處理稱為消費。
[0003]流計算產品主要用于實時計算。實時計算通常在內存中進行,而計算結果要通過某種途徑保存并展現出來。目前,主要采用緩存或者持久化到磁盤如數據庫(非內存數據庫)中兩種方式對計算結果進行保存。其中,由于緩存方式沒有物理磁盤輸入/輸出(1/0),因此,緩存方式有著非常卓越的消息吞吐能力;但是,由于計算結果沒有持久化,緩存方式幾乎沒有容錯能力,也就是說,一旦出現應用程序中斷、服務器宕機、緩存被清空等情況,保存在緩存中的計算結果將無法恢復。而采用持久化到磁盤中的方式,可以實現最高級別的容錯功能,但是,持久化到磁盤涉及到大量的磁盤寫,這又降低了流計算的計算速度,執行效率大約比采用緩存的方式低一個數量級。
[0004]圖1為現有基本的容錯型流計算應用中數據流向示意圖,如圖1所示,消息中間件集群發送的消息流是一條一條的。為了便于容錯,通常流計算產品如圖1中的流計算集群對消息流進行消費是以批次為單位的,即將若干條消息捆綁在一個批次中,每一個批次有一個唯一的標識(瓜)。對于一個批次的消息,只有批次內的每一條消息都被成功消費后,這個批次的消息才被標記為被成功消費;只要一個批次內有一條消息沒有被消費成功,整個批次的消息就會被消息中間件重新發送,被流計算集群重新消費。
[0005]最終處理過的消息流存儲到磁盤稱之為持久化,這一步對于故障恢復是至關重要的。一旦出現應用程序中斷、服務器宕機等情況,只有持久化操作才能保證實時計算的結果不丟失。故障恢復、實時計算應用重啟時,需要重新從磁盤中加載實時計算的過程數據與結果數據,將所有狀態恢復到故障發生之前的一個正確的時間點。在圖1^^^ 2001(661)61集群中存儲有消息中間件集群發送的消息所在的消息隊列的偏移量。當消息中間件集群發送給流計算集群一批消息時,2001(661)61-中會記錄這批次的消息在消息隊列中的起始偏移量。如果這批次的消息被流計算集群成功消費,那么,消息中間件集群會發送下一批次消息,2001(661)61-中記錄的偏移量隨之更新為下一批次消息在消息隊列中的起始偏移量;如果這批次消息被消費失敗,那么,流計算集群會從2001(661)61集群中重新讀取這批次消息的偏移量,然后到消息中間件集群中重新請求該批次消息,以實現消息的失敗重發。


【發明內容】

[0006]為了解決上述技術問題,本申請提供了一種流計算應用中實現持久化的方法及裝置,能夠保證故障后數據的安全恢復,提高實時計算效率。
[0007]為了達到本申請目的,本申請提供一種流計算應用中實現持久化的方法,包括:
[0008]當前批次消息消費成功,根據用于保存當前正在消費的批次消息在消息隊列中的起始位置的第一起始偏移量和預先設置的持久化間隔,判斷是否需要進行持久化操作;
[0009]在需要進行持久化操作時,按照用于保存最近一次持久化操作的下一批次消息在消息隊列中的起始位置的第二起始偏移量指示的消息位置進行持久化處理;
[0010]持久化操作成功后,分別更新第一起始偏移量和第二起始偏移量為下一批次消息的起始偏移量。
[0011]所述流計算應用正常啟動,或者故障恢復后啟動時,該方法還包括:
[0012]根據所述第二起始偏移量請求消息,同時將所述第一起始偏移量的值更改為第二起始偏移量的值。
[0013]所述第二起始偏移量的值為空或者未保存有第二起始偏移量時,所述當前批次消息位于消息中間件的消息隊列的起始位置;
[0014]同時還包括:設置所述第一起始偏移量的值為空。
[0015]所述持久化操作失敗,該方法還包括:按照所述第一起始偏移量指示,重新對所述當前批次消息中的消息進行消費。
[0016]所述判斷是否需要進行持久化操作包括:將所述當前批次的10除以持久化間隔,當其余數為零時,判斷出需要進行持久化操作;
[0017]其中,批次10為從1開始以遞增步長為1的整數。
[0018]所述流計算應用正常啟動,或者故障恢復后啟動時,所述批次10接著流計算應用停止前的最后一個成功持久化過的批次10繼續遞增步長為1遞增。
[0019]本申請還公開一種流計算應用中實現持久化的裝置,至少存儲模塊、判斷模塊,以及處理模塊,其中,
[0020]存儲模塊,其中保存有持久化間隔、用于保存當前正在消費的批次消息在消息隊列中的起始位置的第一起始偏移量,以及用于保存最近一次持久化操作的下一批次消息在消息隊列中的起始位置的第二起始偏移量;
[0021]判斷模塊,當前批次消息消費成功,根據存儲模塊中保存的第一起始偏移量和預先設置的持久化間隔,判斷出需要進行持久化操作時向處理模塊發送持久化通知;
[0022]處理模塊,接收到來自判斷模塊的持久化通知,按照存儲模塊中保存的第二起始偏移量指示的消息位置進行持久化操作;并在持久化操作成功后,將第一起始偏移量和第二起始偏移量均更新為下一批次消息的起始偏移量。
[0023]所述處理模塊進一步用于:
[0024]在流計算應用正常啟動,或者故障恢復后啟動時,根據所述存儲模塊中保存的第二起始偏移量從消息中間件中請求消息,同時將所述存儲模塊中保存的第一起始偏移量的值更改為第二起始偏移量的值。
[0025]所述處理模塊還進一步用于,在所述持久化操作失敗時,按照所述存儲模塊中保存的第一起始偏移量指示,重新對從消息中間件中當前批次消息中的消息進行消費。
[0026]所述判斷模塊具體用于:將所述第一起始偏移量所指示的當前批次的10除以所述持久化間隔,當其余數為零時,判斷出需要進行持久化操作,向所述處理模塊發送持久化通知;其中,批次10為從1開始以遞增步長為1的整數。
[0027]本申請提供的方案包括當前批次消息消費成功,根據用于保存當前正在消費的批次消息在消息隊列中的起始位置的第一起始偏移量和預先設置的持久化間隔,判斷是否需要進行持久化操作;在需要進行持久化操作時,按照用于保存最近一次持久化操作的下一批次消息在消息隊列中的起始位置的第二起始偏移量指示的消息位置進行持久化處理,并在持久化成功后,將第一起始偏移量和第二起始偏移量均更新為下一批次消息的起始偏移量。本申請中的持久化操作不是針對每個批次成功消費后都要進行的,而是在一個預先設置的時間間隔即持久化間隔后進行的,增大了磁盤持久化的時間間隔,從而大大提高實時計算效率。這樣,在故障恢復時,最多只需要重新消費持久化間隔內的批次的消息,與現有同步持久化相比,避免了同步持久化方案中頻繁寫磁盤帶來的性能瓶頸,實時計算的消息吞吐性能提升了一個數量級,而且達到了與緩存方式的方案在同一個數量級;同時,將故障恢復帶來的延遲縮短到了秒級,不會影響實時性。
[0028]本申請的其它特征和優點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本申請而了解。本申請的目的和其他優點可通過在說明書、權利要求書以及附圖中所特別指出的結構來實現和獲得。

【專利附圖】

【附圖說明】
[0029]附圖用來提供對本申請技術方案的進一步理解,并且構成說明書的一部分,與本申請的實施例一起用于解釋本申請的技術方案,并不構成對本申請技術方案的限制。
[0030]圖1為現有基本的容錯型流計算應用中數據流向的示意圖;
[0031]圖2為本申請流計算應用中實現持久化的方法的流程圖;
[0032]圖3為本申請流計算應用中實現持久化的實施例的流程示意圖;
[0033]圖4為本申請流計算應用中實現持久化的裝置的組成結構示意圖。

【具體實施方式】
[0034]為使本申請的目的、技術方案和優點更加清楚明白,下文中將結合附圖對本申請的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
[0035]在本申請一個典型的配置中,計算設備包括一個或多個處理器(⑶們、輸入/輸出接口、網絡接口和內存。
[0036]內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(狀1)和/或非易失性內存等形式,如只讀存儲器(801)或閃存內存是計算機可讀介質的示例。
[0037]計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存靜態隨機存取存儲器動態隨機存取存儲器其他類型的隨機存取存儲器(狀…、只讀存儲器(如…、電可擦除可編程只讀存儲器⑶即如…、快閃記憶體或其他內存技術、只讀光盤只讀存儲器
(0)-801)、數字多功能光盤(1^0 )或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非暫存電腦可讀媒體“1^11811:01*7 1116(1121),如調制的數據信號和載波。
[0038]在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟。
[0039]目前,容錯型流計算方案大致有以下幾種:
[0040]一種是,將實時計算結果寫入緩存,通過部署兩套相同的計算集群來實現容災。這種方式的優點是,由于沒有磁盤1/0,執行效率快,并發訪問性能高;但是缺點也是顯而易見的,即部署成本翻倍,而且如果兩套計算集群同時出現故障,計算結果仍然會丟失。
[0041]另一種是,啟動一個實時計算應用以完成正常的業務計算功能,并將實時計算結果寫緩存;同時,開啟另外一個獨立的實時計算應用以將接收到的原始消息持久化到磁盤中。由于持久化到磁盤的應用與完成業務計算的應用相互獨立,因此,可以實現高執行效率。當出現集群宕機等故障時,在故障恢復時,需要對備份在磁盤中的消息進行重新消費,雖然不會造成數據丟失,但是,當消息量非常大時,故障恢復的過程導致了實時計算應用的嚴重延遲,從而失去了實時的價值。
[0042]還有一種是,在第二種方案的基礎上進行改進,采用同步持久化的方法,即實時計算應用在消費每批次消息時,都將實時計算結果(不是原始消息,而是經過消費加工后的消息)持久化到磁盤中,而且,只有當對該批次的消費以及持久化操作全部成功后,消息中間件集群才會發送下一批次的消息。這種方式是目前通用的用于故障恢復的流計算方案。具體來講,
[0043]同步持久化,就是每一個批次都要做一次寫磁盤的操作。如圖1所示,保存在2001(661)61-集群中的偏移量會隨著對一個批次消息的成功消費而更新為下一個批次消息所在消息隊列的起始位置。如果不做同步持久化,一旦發生應用中斷、集群宕機等情況,在故障恢復、應用重啟之后,將有部分數據丟失。舉例來說,假設實時應用在成功消費完第丁批次的消息后,沒有進行持久化,將這批次的計算結果保存到磁盤中,而接著消費第01+1)批次的消息,此時保存在200匕印61'集群中的偏移量已經更新為第(1+1)批次消息所在消息隊列的起始位置。如果此時發生服務器宕機,在故障恢復、應用重啟后,實時應用從200^661361-集群中獲得偏移量并到消息中間件集群中去請求消息,顯然,這時請求到的是第(1+1)批次的消息;而之前第I批次的消息沒有保存在磁盤中(即未執行同步持久化),必然導致第I批次消息的丟失。
[0044]在同步持久化方案中,由于每個批次都要做一次寫磁盤的操作,而批次的發送時間間隔大約在400毫秒?2秒之間,實時應用對每個批次消息在內存中計算花費的時間大約在1秒鐘以內。這樣,磁盤寫的頻率會非常頻繁。根據大量經驗可以知道,每批次磁盤寫花費的時間占整個批次消費所花費的總時間的比重達到了 50%或更多,磁盤寫成為了影響實時計算效率的主要瓶頸。
[0045]圖2為本申請流計算應用中實現持久化的方法的流程圖,如圖2所示,包括以下步驟:
[0046]步驟200:當前批次消息消費成功,根據用于保存當前正在消費的批次消息在消息隊列中的起始位置的第一起始偏移量和預先設置的持久化間隔,判斷是否需要進行持久化操作。
[0047]本步驟中,對當前批次消息的消費屬于現有技術,具體實現并不屬于本申請的保護范圍,這里不再贅述。
[0048]本步驟中,持久化間隔~是預先設置的一個大于1的整數,比如50。通常,可以將持久化間隔~設置為10到100之間的一個整數。
[0049]本步驟中的判斷是否需要進行持久化操作包括:將當前批次的10除以持久化間隔I當其余數為零時,判斷出需要進行持久化操作。其中,批次10是從1開始遞增步長為1的整數。
[0050]從本步驟可見,本申請中的持久化操作不是針對每個批次成功消費后都要進行的,而是在一個間隔即持久化間隔~后進行的。這樣,在故障恢復時,最多只需要重新消費~個批次的消息,與現有同步持久化相比,避免了同步持久化方案中頻繁寫磁盤帶來的性能瓶頸,實時計算的消息吞吐性能提升了一個數量級,而且達到了與不做持久化的方案如緩存方式在同一個數量級,同時,將故障恢復帶來的延遲縮短到了秒級。
[0051]步驟201:在需要進行持久化操作時,按照用于保存最近一次持久化操作的下一批次消息在消息隊列中的起始位置的第二起始偏移量指示的消息位置進行持久化處理。
[0052]持久化處理就是流計算應用從第二起始偏移量指示的消息位置,將數據緩沖中的計算結果數據寫入到磁盤中。具體實現屬于本領域技術人員的慣用技術手段,所不同的是,這里需要持久化的計算結果是由第二起始偏移量指示的,而第二起始偏移量保存的是最近一次持久化操作的下一批次消息在消息隊列中的起始位置,也就是說,持久化的是從上一次持久化成功后的批次開始,包括持久化間隔~的批次消息在數據緩沖中的計算結果。即本申請中的持久化操作不是每個批次成功消費后都要進行的,而是在一個批次間隔即持久化間隔^的。
[0053]步驟202:持久化成功后,第一起始偏移量和第二起始偏移量均更新為下一批次消息的起始偏移量。本步驟的更新過程,保證了下一次持久化處理從未持久化處理的成功消費的批次消息開始。
[0054]在流計算應用正常啟動,或者故障恢復后啟動時,本申請方法還包括:根據第二起始偏移量請求消息,同時將第一起始偏移量的值更改為第二起始偏移量的值。此時,如果第二起始偏移量的值為空或者未保存有第二起始偏移量,則從消息中間件的消息隊列的起始位置開始請求消息,同時第一起始偏移量的值設置為空。
[0055]同時,流計算應用正常啟動,或者故障恢復后啟動時,批次10可以接著應用停止前的最后一個成功持久化過的批次10繼續遞增,而不是重新從1開始遞增。以保證批次10對于同一個實時應用的唯一性。
[0056]如果持久化操作失敗,本申請方法還包括:按照第一起始偏移量指示,重新對當前批次消息中的消息進行消費。
[0057]下面結合實施例對本發明方法進行詳細描述。圖3為本申請流計算應用中實現持久化的實施例的流程示意圖,本實施例中以8丨0;011作為流計算框架,使用扣妨語言開發流計算應用,并以圖1所示容錯型流計算應用為例進行描述,如圖3所示,包括:
[0058]步驟300?步驟301:流計算應用啟動如正常啟動或故障恢復后啟動,從2001(661)61'中讀取第二起始偏移量,然后按照第二起始偏移量指示的消息位置到消息中間件中去請求消息,同時,將2001(661)61中的第一起始偏移量的值更改為讀取的第二起始偏移量的值。
[0059]本步驟中,如果2001(6^61中沒有保存第二起始偏移量或者其值為空,那么,從消息中間件的消息隊列的起始位置開始請求消息,同時將2001(661)61中的第一起始偏移量的值設置為空。
[0060]步驟302:到消息中間件中請求消息。
[0061]步驟303:流計算集群的計算單元對接收到的當前批次消息進行消費,如果消費失敗,進入步驟308 ;否則進入步驟304。
[0062]步驟304:對當前批次消息的成功消費后,判斷當前批次10除以預先設置的持久化間隔~后得到的余數是否等于0。如果不等于0,說明此時還不需要進行持久化,進入步驟309 ;否則進入步驟305。
[0063]步驟305:在需要進行持久化操作時,進行持久化處理并將實時計算結果保存到磁盤中。
[0064]步驟306:判斷持久化操作是否成功,如果成功進入步驟307 ;如果失敗進入步驟310。其中,判斷持久化是否成功屬于本領域技術人員的慣用技術手段,通常數據庫軟件會提供給用戶持久化的接口,調用接口后通過返回碼來判斷持久化是否成功即可。
[0065]步驟307:持久化操作成功,從消息中間件中獲得下一批次消息的起始偏移量,同時將該偏移量保存為第一起始偏移量和第二起始偏移量,之后返回步驟302。
[0066]步驟308:如果對當前消息消費失敗,從200X661)61'中重新讀取第一起始偏移量后返回步驟302。如果此時第一起始偏移量的值為空,則返回步驟302并從消息中間件的消息隊列的起始位置開始請求消息。
[0067]步驟309:在不需要進行持久化操作時,從消息中間件中獲取下一批次消息的起始偏移量,同時將該偏移量保存為第一起始偏移量后返回步驟302,繼續對消息進行消費。
[0068]步驟310:如果持久化操作失敗,從2001(661)6:^中重新讀取第一起始偏移量后返回步驟302。
[0069]圖3所示流程在流計算應用接收到終止命令時停止。
[0070]圖4為本申請流計算應用中實現持久化的裝置的組成結構示意圖,如圖4所示,至少包括存儲模塊、判斷模塊,以及處理模塊,其中,
[0071]存儲模塊,其中保存有持久化間隔、用于保存當前正在消費的批次消息在消息隊列中的起始位置的第一起始偏移量,以及用于保存最近一次持久化操作的下一批次消息在消息隊列中的起始位置的第二起始偏移量;
[0072]判斷模塊,當前批次消息消費成功,根據存儲模塊中保存的第一起始偏移量和預先設置的持久化間隔,判斷出需要進行持久化操作時向處理模塊發送持久化通知;具體用于,將第一起始偏移量所指示的當前批次的10除以持久化間隔,當其余數為零時,判斷出需要進行持久化操作;其中,批次10為從1開始以遞增步長為1的整數。
[0073]處理模塊,接收到來自判斷模塊的持久化通知,按照存儲模塊中保存的第二起始偏移量指示的消息位置進行持久化處理;并在持久化成功后,將第一起始偏移量和第二起始偏移量均更新為下一批次消息的起始偏移量。
[0074]處理模塊進一步用于:在流計算應用正常啟動,或者故障恢復后啟動時,根據存儲模塊中保存的第二起始偏移量從消息中間件中請求消息,同時將存儲模塊中保存的第一起始偏移量的值更改為第二起始偏移量的值。
[0075]處理模塊還進一步用于,在持久化操作失敗時,按照存儲模塊中保存的第一起始偏移量指示,重新對從消息中間件中當前批次消息中的消息進行消費。
[0076]以圖1所示架構為例,本申請裝置中的存儲模塊可以設置在2001(661)61中,判斷模塊和處理模塊可以設置在流計算集群中。在實際應用中,也中可以使用其他軟件替代2001(661)61-,比如1182186 5 178(11等;或者,將存儲模塊設置在消息中間件中實現等。
[0077]本領域的技術人員應該明白,上述的本申請實施例所提供的裝置的各組成部分,以及方法中的各步驟,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上。可選地,它們可以用計算裝置可執行的程序代碼來實現。從而,可以將它們存儲在存儲裝置中由計算裝置來執行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。這樣,本申請不限制于任何特定的硬件和軟件結合。
[0078]雖然本申請所揭露的實施方式如上,但所述的內容僅為便于理解本申請而采用的實施方式,并非用以限定本申請。任何本申請所屬領域內的技術人員,在不脫離本申請所揭露的精神和范圍的前提下,可以在實施的形式及細節上進行任何的修改與變化,但本申請的專利保護范圍,仍須以所附的權利要求書所界定的范圍為準。
【權利要求】
1.一種流計算應用中實現持久化的方法,其特征在于,包括: 當前批次消息消費成功,根據用于保存當前正在消費的批次消息在消息隊列中的起始位置的第一起始偏移量和預先設置的持久化間隔,判斷是否需要進行持久化操作; 在需要進行持久化操作時,按照用于保存最近一次持久化操作的下一批次消息在消息隊列中的起始位置的第二起始偏移量指示的消息位置進行持久化處理; 持久化操作成功后,分別更新第一起始偏移量和第二起始偏移量為下一批次消息的起始偏移量。
2.根據權利要求1所述的方法,其特征在于,所述流計算應用正常啟動,或者故障恢復后啟動時,該方法還包括: 根據所述第二起始偏移量請求消息,同時將所述第一起始偏移量的值更改為第二起始偏移量的值。
3.根據權利要求2所述的方法,其特征在于,所述第二起始偏移量的值為空或者未保存有第二起始偏移量時,所述當前批次消息位于消息中間件的消息隊列的起始位置; 同時還包括:設置所述第一起始偏移量的值為空。
4.根據權利要求1所述的方法,其特征在于,所述持久化操作失敗,該方法還包括:按照所述第一起始偏移量指示,重新對所述當前批次消息中的消息進行消費。
5.根據權利要求2或4所述的方法,其特征在于,所述判斷是否需要進行持久化操作包括:將所述當前批次的ID除以持久化間隔,當其余數為零時,判斷出需要進行持久化操作; 其中,批次ID為從I開始以遞增步長為I的整數。
6.根據權利要求5所述的方法,其特征在于,所述流計算應用正常啟動,或者故障恢復后啟動時,所述批次ID接著流計算應用停止前的最后一個成功持久化過的批次ID繼續遞增步長為I遞增。
7.一種流計算應用中實現持久化的裝置,其特征在于,至少存儲模塊、判斷模塊,以及處理模塊,其中, 存儲模塊,其中保存有持久化間隔、用于保存當前正在消費的批次消息在消息隊列中的起始位置的第一起始偏移量,以及用于保存最近一次持久化操作的下一批次消息在消息隊列中的起始位置的第二起始偏移量; 判斷模塊,當前批次消息消費成功,根據存儲模塊中保存的第一起始偏移量和預先設置的持久化間隔,判斷出需要進行持久化操作時向處理模塊發送持久化通知; 處理模塊,接收到來自判斷模塊的持久化通知,按照存儲模塊中保存的第二起始偏移量指示的消息位置進行持久化操作;并在持久化操作成功后,將第一起始偏移量和第二起始偏移量均更新為下一批次消息的起始偏移量。
8.根據權利要求7所述的裝置,其特征在于,所述處理模塊進一步用于: 在流計算應用正常啟動,或者故障恢復后啟動時,根據所述存儲模塊中保存的第二起始偏移量從消息中間件中請求消息,同時將所述存儲模塊中保存的第一起始偏移量的值更改為第二起始偏移量的值。
9.根據權利要求7所述的裝置,其特征在于,所述處理模塊還進一步用于,在所述持久化操作失敗時,按照所述存儲模塊中保存的第一起始偏移量指示,重新對從消息中間件中當前批次消息中的消息進行消費。
10.根據權利要求7?9任一項所述的裝置,其特征在于,所述判斷模塊具體用于:將所述第一起始偏移量所指示的當前批次的ID除以所述持久化間隔,當其余數為零時,判斷出需要進行持久化操作,向所述處理模塊發送持久化通知;其中,批次ID為從I開始以遞增步長為I的整數。
【文檔編號】G06F17/30GK104424186SQ201310362269
【公開日】2015年3月18日 申請日期:2013年8月19日 優先權日:2013年8月19日
【發明者】劉健男 申請人:阿里巴巴集團控股有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 郸城县| 博乐市| 舟山市| 浦北县| 吐鲁番市| 泾川县| 平果县| 福泉市| 来凤县| 桐乡市| 湛江市| 黑龙江省| 军事| 搜索| 西乡县| 施甸县| 汽车| 珠海市| 正宁县| 五寨县| 财经| 长宁区| 合山市| 大新县| 漳浦县| 乐山市| 南部县| 津市市| 华容县| 明溪县| 克山县| 巴林左旗| 万荣县| 阳城县| 大同市| 彭水| 白河县| 城固县| 阿坝县| 许昌县| 明溪县|