日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

一種消息處理方法、裝置及電子設備與流程

文檔序號:39722935發(fā)布日期:2024-10-22 13:17閱讀:2來源:國知局
一種消息處理方法、裝置及電子設備與流程

所屬的技術人員能夠理解,本發(fā)明的各個方面可以實現為系統、方法或程序產品。因此,本發(fā)明的各個方面可以具體實現為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、微代碼等),或硬件和軟件方面結合的實施方式,這里可以統稱為“電路”、“模塊”或“系統”。請參見圖5,基于同一技術構思,本技術實施例還提供了一種計算機設備。在一種實施例中,該計算機設備如圖所示可以包括存儲器501,通訊模塊503以及一個或多個處理器502。存儲器501,用于存儲處理器502執(zhí)行的計算機程序。存儲器501可主要包括存儲程序區(qū)和存儲數據區(qū),其中,存儲程序區(qū)可存儲操作系統;存儲數據區(qū)可存儲各種操作指令集等。存儲器501可以是易失性存儲器(volatile?memory),例如隨機存取存儲器(random-access?memory,ram);存儲器501也可以是非易失性存儲器(non-volatilememory),例如只讀存儲器,快閃存儲器(flash?memory),硬盤(hard?disk?drive,hdd)或固態(tài)硬盤(solid-state?drive,ssd);或者存儲器501是能夠用于攜帶或存儲具有指令或數據結構形式的期望的程序代碼并能夠由計算機存取的任何其他介質,但不限于此。存儲器501可以是上述存儲器的組合。處理器502,可以包括一個或多個中央處理單元(central?processing?unit,cpu)或者為數字處理單元等等。處理器502,用于調用存儲器501中存儲的計算機程序時實現上述消息處理方法。通訊模塊503用于與終端設備、站點設備或者其他網絡設備進行通信。本技術實施例中不限定上述存儲器501、通訊模塊503和處理器502之間的具體連接介質。本技術實施例在圖5中以存儲器501和處理器502之間通過總線504連接,總線504在圖5中以粗線描述,其它部件之間的連接方式,僅是進行示意性說明,并不引以為限。總線504可以分為地址總線、數據總線、控制總線等。為便于描述,圖5中僅用一條粗線描述,但并不描述僅有一根總線或一種類型的總線。存儲器501中存儲有計算機存儲介質,計算機存儲介質中存儲有計算機可執(zhí)行指令,計算機可執(zhí)行指令用于實現本技術實施例的消息處理方法。處理器502用于執(zhí)行上述各實施例的消息處理方法。本發(fā)明實施例還提供一種計算機存儲介質,其中,所述計算機可讀存儲介質存儲有計算機程序,所述計算機程序用于使計算機執(zhí)行上述實施例消息處理方法的技術方案。本發(fā)明實施例還提供一種計算機程序產品,所述計算機程序產品包括:計算機程序代碼,當所述計算機程序代碼在計算機上運行時,使得計算機執(zhí)行計算機程序時可實現上述實施例中消息處理方法的技術方案。本領域所屬的技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序指令屬于計算機程序,計算機程序可以存儲于一計算機可讀存儲介質中,該計算機程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;可讀存儲介質例如可以是但不限于電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合??勺x存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。本發(fā)明的實施方式的程序產品可以采用便攜式緊湊盤只讀存儲器(cd-rom)并包括程序代碼,并可以在計算裝置上運行。然而,本發(fā)明的程序產品不限于此,在本文件中,可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被命令執(zhí)行系統、裝置或者器件使用或者與其結合使用。可讀信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了可讀程序代碼。這種傳播的數據信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。可讀信號介質還可以是可讀存儲介質以外的任何可讀介質,該可讀介質可以發(fā)送、傳播或者傳輸用于由命令執(zhí)行系統、裝置或者器件使用或者與其結合使用的程序??勺x介質上包含的程序代碼可以用任何適當的介質傳輸,包括但不限于無線、有線、光纜、rf等等,或者上述的任意合適的組合。可以以一種或多種程序設計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的程序代碼,程序設計語言包括面向對象的程序設計語言—諸如java、c++等,還包括常規(guī)的過程式程序設計語言—諸如“c”語言或類似的程序設計語言。程序代碼可以完全地在客戶計算裝置上執(zhí)行、部分地在客戶設備上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在客戶計算裝置上部分在遠程計算裝置上執(zhí)行、或者完全在遠程計算裝置或服務器上執(zhí)行。在涉及遠程計算裝置的情形中,遠程計算裝置可以通過任意種類的網絡包括局域網(lan)或廣域網(wan)連接到客戶計算裝置,或者,可以連接到外部計算裝置(例如利用因特網服務提供商來通過因特網連接)。所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。在本發(fā)明所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。另外,在本技術各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。


背景技術:

1、當前在處理消息時,系統常采用消息中間件(例如,kafka)對消息進行歸類,以解耦消息生產和消息消費。在前述消息中間件中,通過topic(主題)對消息進行歸類消費之后,會將其存儲至關系型數據庫中,然后對關系型數據庫中進行消息輪詢與計算,以獲取分組的消息。

2、然而在一些業(yè)務場景中,消息具有上報頻率高、數量大的特性。在消息密集產生,依據前述方法將分組的消息存儲至關系型數據庫時,將導致關系型數據庫在短時間內面臨過大的存儲壓力,由此關系型數據庫容易出現數據讀寫異常以及查詢效率降低的等性能問題,例如數據丟失等。在這種情況下,前述系統也需要更為頻繁地連接關系型數據庫,以致損耗系統的性能、和占用系統大量內存,且為了查詢完整分組的消息所產生的大量數據資源也占用了系統的大量內存,以致出現內存飆升的現象。


技術實現思路

1、本技術提供了一種消息處理方法、裝置及電子設備,用以避免當前將消息持久化存儲于關系型數據庫時,關系型數據庫容易因消息密集而性能下降,以及系統因內存飆升而出現的卡頓、甚至崩潰的問題。

2、第一方面、本技術實施例提供一種消息處理方法,包括:

3、響應于獲取到消息,確定所述消息的類型信息;其中,所述類型信息包括,所述消息與所述消息的業(yè)務場景之間的相關度;

4、針對所述類型信息相同的所述消息,基于所述消息所攜帶的時間戳,對所述消息進行分組,得到多個消息組;其中,所述消息組中的所述消息的所述時間戳位于同一預設時間段內;

5、將所述消息組緩存至待處理隊列。

6、一種可能的實施方式,所述針對所述類型信息相同的所述消息,基于所述消息所攜帶的時間戳,對所述消息進行分組,得到多個消息組,包括:

7、讀取所述消息中的所述時間戳;其中,所述時間戳與所述消息的生成時刻對應;

8、在所述類型信息相同的所述消息中,確定時間最早的目標時間戳所對應的所述消息為參考消息;

9、確定獲取到所述參考消息的時刻為第一時刻,并基于所述第一時刻與獲取到的最長等待時間閾值,確定第二時刻;

10、基于第一時間窗口,確定所述消息組;其中,所述第一時間窗口的起始時刻為所述第一時刻,截止時刻為所述第二時刻。

11、一種可能的實施方式,所述基于第一時間窗口,確定所述消息組,包括:

12、將獲取到所述消息的時刻位于所述第一時間窗口的所述消息確定為中間消息組;

13、針對所述中間消息組,基于所述目標時間戳和獲取到的消息預設間隔,確定第三時刻;

14、在所述中間消息組中,將所述時間戳位于所述目標時間戳與所述第三時刻之間的所述消息確定為一組所述消息組。

15、一種可能的實施方式,所述確定所述消息的類型信息,包括:

16、在所述消息中,基于第一目標鍵,識別第一對象;其中,所述第一對象包括所述第一目標鍵和第一目標值,所述第一目標值指示,所述業(yè)務場景的信息、和所述相關度;

17、在預設的第一映射關系中,查詢所述第一目標值所對應的所述類型信息;其中,所述第一映射關系包括所述第一字段與所述類型信息的對應關系。

18、一種可能的實施方式,所述確定所述消息的類型信息,包括:

19、在所述消息中,基于第一目標鍵和第二目標鍵,識別所述第一對象、和第二對象;其中,所述第二對象包括所述第二目標鍵和第二目標值,所述第二目標值指示,對應于所述業(yè)務場景的業(yè)務規(guī)則;

20、在預設的第二映射關系中,查詢對應于所述第一目標值,且對應于所述第二目標值的類型信息。

21、一種可能的實施方式,所述針對所述類型信息相同的所述消息,基于所述消息所攜帶的時間戳,對所述消息進行分組之前,還包括:

22、確定所述消息所對應的目標線程池;

23、利用所述目標線程池中的線程,將所述消息加入第一隊列中,且為所述第一隊列中的所述消息確定出隊規(guī)則,使所述消息基于所述出隊規(guī)則從所述第一隊列出隊,進入待分組消息隊列;

24、則所述針對所述類型信息相同的所述消息,基于所述消息所攜帶的時間戳,對所述消息進行分組,得到多個消息組,包括:

25、針對所述類型信息相同的所述消息,基于所述消息所攜帶的時間戳,針對所述待分組消息隊列中的消息進行分組,得到所述多個消息組。

26、一種可能的實施方式,所述所述消息從所述第一隊列出隊時采取阻塞式take。

27、一種可能的實施方式,所述將所述消息組緩存至待處理隊列之后,還包括:

28、響應于所述待處理隊列中所述消息組中所述消息的狀態(tài)均為完結狀態(tài),處理所述消息組中消息;或者,

29、響應于所述待處理隊列中所述消息組中至少一個所述消息的狀態(tài)非所述完結狀態(tài),等待預設時間,確定所述消息組中所述消息的狀態(tài),直到所述消息組中的所述消息狀態(tài)均為所述完結狀態(tài),處理所述消息組中的消息。

30、第二方面、本技術實施例提供一種消息處理裝置,包括:

31、類型單元,用于響應于獲取到消息,確定所述消息的類型信息;其中,所述類型信息包括,所述消息與所述消息的業(yè)務場景之間的相關度;

32、分組單元,用于針對所述類型信息相同的所述消息,基于所述消息所攜帶的時間戳,對所述消息進行分組,得到多個消息組;其中,所述消息組中的所述消息的所述時間戳位于同一預設時間段內;

33、緩存單元,用于將所述消息組緩存至待處理隊列。

34、一種可能的實施方式,所述分組單元具體用于讀取所述消息中的所述時間戳;其中,所述時間戳與所述消息的生成時刻對應;在所述類型信息相同的所述消息中,確定時間最早的目標時間戳所對應的所述消息為參考消息;確定獲取到所述參考消息的時刻為第一時刻,并基于所述第一時刻與獲取到的最長等待時間閾值,確定第二時刻;基于第一時間窗口,確定所述消息組;其中,所述第一時間窗口的起始時刻為所述第一時刻,截止時刻為所述第二時刻。

35、一種可能的實施方式,所述分組單元具體用于將獲取到所述消息的時刻位于所述第一時間窗口的所述消息確定為中間消息組;針對所述中間消息組,基于所述目標時間戳和獲取到的消息預設間隔,確定第三時刻;在所述中間消息組中,將所述時間戳位于所述目標時間戳與所述第三時刻之間的所述消息確定為一組所述消息組。

36、一種可能的實施方式,所述類型單元具體用于在所述消息中,基于第一目標鍵,識別第一對象;其中,所述第一對象包括所述第一目標鍵和第一目標值,所述第一目標值指示,所述業(yè)務場景的信息、和所述相關度;在預設的第一映射關系中,查詢所述第一目標值所對應的所述類型信息;其中,所述第一映射關系包括所述第一字段與所述類型信息的對應關系。

37、一種可能的實施方式,所述類型單元還用于在所述消息中,基于第一目標鍵和第二目標鍵,識別所述第一對象、和第二對象;其中,所述第二對象包括所述第二目標鍵和第二目標值,所述第二目標值指示,對應于所述業(yè)務場景的業(yè)務規(guī)則;在預設的第二映射關系中,查詢對應于所述第一目標值,且對應于所述第二目標值的類型信息。

38、一種可能的實施方式,所述裝置還包括線程單元,用于確定所述消息所對應的目標線程池;利用所述目標線程池中的線程,將所述消息加入第一隊列中,且為所述第一隊列中的所述消息確定出隊規(guī)則,使所述消息基于所述出隊規(guī)則從所述第一隊列出隊,進入待分組消息隊列;

39、則所述分組單元還用于針對所述類型信息相同的所述消息,基于所述消息所攜帶的時間戳,針對所述待分組消息隊列中的消息進行分組,得到所述多個消息組。

40、一種可能的實施方式,所述消息從所述第一隊列出隊時采取阻塞式take。

41、一種可能的實施方式,所述裝置還包括狀態(tài)單元,用于響應于所述待處理隊列中所述消息組中所述消息的狀態(tài)均為完結狀態(tài),處理所述消息組中消息;或者,響應于所述待處理隊列中所述消息組中至少一個所述消息的狀態(tài)非所述完結狀態(tài),等待預設時間,確定所述消息組中所述消息的狀態(tài),直到所述消息組中的所述消息狀態(tài)均為所述完結狀態(tài),處理所述消息組中的消息。

42、第三方面、本技術實施例提供一種電子設備,包括:

43、存儲器,用于存儲程序指令;

44、處理器,用于調用所述存儲器中存儲的程序指令,按照獲得的程序指令執(zhí)行第一方面及任一種可能的實施方式所述的方法包括的步驟。

45、第四方面、本技術實施例提供一種計算機存儲介質,其上存儲有計算機程序,

46、該計算機程序被處理器執(zhí)行時實現第一方面及任一種可能的實施方式所述方法的步驟。

47、第五方面、本技術實施例提供一種計算機程序產品,包括計算機程序,

48、所述計算機程序被處理器執(zhí)行時實現第一方面及任一種可能的實施方式所述方法的步驟。

49、本發(fā)明實施例中所提供的一個或多個技術方案,至少具有以下技術效果:

50、本技術實施例提供的消息處理方法中,通過對類型信息相同的消息,依據消息所攜帶的時間戳分組,得到多個消息組。而消息由用于監(jiān)測事件的一個或多個消息源在相同時刻或相繼生成,前述通過時間戳分組所得消息組實際可通過時間戳將各個事件的消息歸為一組,所以在對以消息組為單位的待處理隊列進行緩存時,一方面可在準確得到反映消息源所監(jiān)測事件的消息組的同時,避免了將消息持久化存儲于關系型數據庫時關系型數據庫容易因讀寫大而性能不足的問題,以及因消息頻繁上報系統需要頻繁連接關系型數據庫所系統性能下降,占用內存過大,以致系統卡頓、崩潰的問題。

51、另一方面,可避免使用topic對消息進行歸類時因topic分類維度單一,無法實現精細化分組,且上述待處理隊列消息實際是以消息組為單位存、取消息的,而該消息組中消息數量遠遠少于topic所含消息的數量,所以對待處理隊列中的消息組具備存、取效率俱高,時效性優(yōu)的優(yōu)勢,避免接收到消息后消息堵塞的情形,由此可實時處理大量且密集的消息,確保系統的緩存空間能夠容納待處理隊列中的消息,實現對待處理隊列進行緩存的目的,也避免了緩存不能支持,而只能選擇持久化存儲的關系庫的方式。

52、并且,以上述消息組作為待處理隊列的處理單元,也可保證消息組中信息被及時處理,相應地,與消息組所對應的事件也能夠被及時處理,使得例如為某個變電站或固定線路的停電搶修事件等的時效性得到保障。

53、此外,通過預先為不同類型的消息設置線程池,以在獲取到消息時,根據消息的類型信息,為該消息確定與之對應的目標線程池,進一步提升消息處理的效率。尤其在消息源多、各消息源所生成消息的類型信息復雜的場景中,采用本技術實施例所提供的消息處理方法處理消息時明顯具備更為流暢的特性。

54、本技術的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本技術而了解。本技術的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1