最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

異步消息處理方法、設(shè)備和存儲(chǔ)介質(zhì)與流程

文檔序號(hào):41948715發(fā)布日期:2025-05-16 14:06閱讀:3來源:國知局
異步消息處理方法、設(shè)備和存儲(chǔ)介質(zhì)與流程

本技術(shù)涉及異步通信,尤其涉及一種異步消息處理方法、設(shè)備和存儲(chǔ)介質(zhì)。


背景技術(shù):

1、消息中間件是一種應(yīng)用于分布式系統(tǒng)間進(jìn)行消息傳遞的常用軟件,其提供了一套異步通信機(jī)制,使得各服務(wù)間可以獨(dú)立運(yùn)行,無需直接調(diào)用,有效幫助系統(tǒng)間實(shí)現(xiàn)解耦,從而提高了微服務(wù)系統(tǒng)的擴(kuò)展性和容錯(cuò)性。

2、微服務(wù)架構(gòu)已是當(dāng)前系統(tǒng)建設(shè)主流,系統(tǒng)模塊化拆分更趨于精細(xì),這種架構(gòu)可以很大程度保障系統(tǒng)高可用,使得各模塊間相互獨(dú)立,任何一方故障可以最大程度降低對(duì)系統(tǒng)整體可用性產(chǎn)生影響。尤其針對(duì)重要復(fù)雜系統(tǒng),微服務(wù)分工更為明確?;诖耍到y(tǒng)間相互通信必不可少,消息中間件的出現(xiàn)降低了系統(tǒng)間通信成本,其被廣泛應(yīng)用于微服務(wù)間異步調(diào)用、解耦及流量削峰等場(chǎng)景。

3、現(xiàn)有情況中,針對(duì)不同業(yè)務(wù)場(chǎng)景下消息中間件常見的消息失敗、丟失及冪等重試機(jī)制,缺乏通用異步重試機(jī)制和異構(gòu)降級(jí)機(jī)制。

4、上述內(nèi)容僅用于輔助理解本技術(shù)的技術(shù)方案,并不代表承認(rèn)上述內(nèi)容是現(xiàn)有技術(shù)。


技術(shù)實(shí)現(xiàn)思路

1、本技術(shù)的主要目的在于提供一種異步消息處理方法、設(shè)備和存儲(chǔ)介質(zhì),旨在解決不同業(yè)務(wù)場(chǎng)景下消息中間件常見的消息失敗、丟失及冪等重試機(jī)制,缺乏通用異步重試機(jī)制和異構(gòu)降級(jí)機(jī)制的技術(shù)問題。

2、為實(shí)現(xiàn)上述目的,本技術(shù)提出一種異步消息處理方法,所述的方法包括:

3、接收第一業(yè)務(wù)系統(tǒng)發(fā)送的異步消息和本地異步記錄;

4、處理所述異步消息,根據(jù)處理結(jié)果更新所述本地異步記錄并返回所述第一業(yè)務(wù)系統(tǒng);

5、掃描所述本地異步記錄,判斷是否存在超時(shí)未處理或失敗記錄;

6、若存在超時(shí)未處理或失敗記錄,判斷消息中間件是否可用;

7、若所述消息中間件可用,則發(fā)起異步消息重試,否則申請(qǐng)第二業(yè)務(wù)系統(tǒng)異步線程。

8、在一實(shí)施例中,所述處理所述異步消息的步驟包括:

9、將異步消息從待處理狀態(tài)轉(zhuǎn)移到處理中狀態(tài),對(duì)所述異步消息加鎖;

10、等待所述異步消息處理中狀態(tài)處理完成,根據(jù)處理完成結(jié)果將所述異步消息轉(zhuǎn)移到失敗或成功狀態(tài),并對(duì)所述異步消息加鎖;

11、若檢測(cè)到所述處理完成結(jié)果為失敗狀態(tài)時(shí),將所述異步消息轉(zhuǎn)移到待處理狀態(tài)重試;

12、若檢測(cè)到所述異步消息在處理中狀態(tài)時(shí)存在其他異步消息,則觸發(fā)并發(fā)消費(fèi)控制策略,丟棄所述其他異步消息;

13、若檢測(cè)到所述異步消息在成功或失敗狀態(tài)時(shí)存在其他異步信息,則觸發(fā)冪等消費(fèi)控制策略,丟棄所述其他異步消息。

14、在一實(shí)施例中,所述根據(jù)處理結(jié)果更新所述本地異步記錄并返回所述第一業(yè)務(wù)系統(tǒng)的步驟包括:

15、根據(jù)處理結(jié)果獲取異常消息,更新本地異步記錄至第二業(yè)務(wù)系統(tǒng);

16、通過所述第二業(yè)務(wù)系統(tǒng)向第一業(yè)務(wù)系統(tǒng)發(fā)送異常消息接收確認(rèn);

17、通過調(diào)用所述第一業(yè)務(wù)系統(tǒng)提供的api更新本地異步記錄;

18、發(fā)送更新請(qǐng)求至所述第一業(yè)務(wù)系統(tǒng)并更新所述第一業(yè)務(wù)系統(tǒng)的本地異步記錄狀態(tài);

19、在更新所述第一業(yè)務(wù)系統(tǒng)的本地異步記錄后,所述第一業(yè)務(wù)系統(tǒng)向所述第二業(yè)務(wù)系統(tǒng)返回確認(rèn)響應(yīng),表示更新操作已完成。

20、在一實(shí)施例中,所述掃描所述本地異步記錄,判斷是否存在超時(shí)未處理或失敗記錄的步驟包括:

21、判斷本地異步記錄中是否存在失敗記錄;

22、若所述本地異步記錄中存在失敗記錄,則判斷異步消息處理異常導(dǎo)致的任務(wù)失敗是否未超過最大失敗次數(shù),若未超過最大失敗次數(shù),則將異步消息轉(zhuǎn)換到待處理狀態(tài);

23、若所述本地異步記錄中不存在失敗記錄,則進(jìn)一步判斷是否存在超時(shí)未處理記錄;

24、若存在超時(shí)未處理記錄,則判斷是否因異步消息數(shù)目多,但異步線程資源不足、異步消息丟失導(dǎo)致的超時(shí)未處理,否則判斷異步消息處理是否超過預(yù)設(shè)最大允許時(shí)間,若超過預(yù)設(shè)最大允許時(shí)間,則通過兜底作業(yè)統(tǒng)一掃描出來,并重新發(fā)出異步消息。

25、在一實(shí)施例中,所述發(fā)起異步消息重試包括:

26、當(dāng)異步消息因本地異步調(diào)度處理異?;蚓€程資源不足導(dǎo)致超時(shí)未處理時(shí),轉(zhuǎn)移到待處理狀態(tài)等待重新發(fā)出異步消息;

27、所述異步消息重新發(fā)出后從待處理狀態(tài)轉(zhuǎn)移到處理中狀態(tài),并對(duì)所述異步消息加鎖;

28、若處理中狀態(tài)的異步消息失敗則重試,轉(zhuǎn)移回待處理狀態(tài),若線程資源充足則繼續(xù)處理,保持在處理中狀態(tài);

29、通過兜底作業(yè)統(tǒng)一掃描超時(shí)待處理異步,并發(fā)出異步消息恢復(fù)待處理狀態(tài);

30、所述異步消息從處理中狀態(tài)處理完成后,根據(jù)處理結(jié)果轉(zhuǎn)移到失敗或成功狀態(tài),并對(duì)所述異步消息加鎖;

31、判斷處理結(jié)果中終態(tài)次數(shù)是否達(dá)到上限,如果所述終態(tài)次數(shù)達(dá)到上限則保持在失敗狀態(tài),否則保持成功狀態(tài)。

32、在一實(shí)施例中,所述發(fā)起異步消息重試還包括:

33、異步消息處理的個(gè)性化配置,所述個(gè)性化配置包括:

34、調(diào)整失敗重試的間隔時(shí)間、失敗重試的上限次數(shù)、處理中的最大等待時(shí)間、待處理的最大等待時(shí)間。

35、在一實(shí)施例中,所述申請(qǐng)第二業(yè)務(wù)系統(tǒng)異步線程的步驟包括:

36、當(dāng)消息中間件不可用時(shí),第一業(yè)務(wù)系統(tǒng)通過兜底作業(yè)統(tǒng)一掃描超時(shí)待處理異步,并申請(qǐng)第二業(yè)務(wù)系統(tǒng)本地線程池處理異步消息;

37、所述第一業(yè)務(wù)系統(tǒng)通過所述本地線程池中的線程對(duì)待處理狀態(tài)的異步消息加鎖,并繼續(xù)處理轉(zhuǎn)換為處理中狀態(tài);

38、所述第一業(yè)務(wù)系統(tǒng)等待所述異步消息處理中狀態(tài)處理完成,根據(jù)處理結(jié)果轉(zhuǎn)換為成功狀態(tài)或失敗狀態(tài),并對(duì)所述異步消息加鎖。

39、在一實(shí)施例中,所述第二業(yè)務(wù)系統(tǒng)本地線程池處理異步消息的步驟包括:

40、判斷第二業(yè)務(wù)系統(tǒng)本地線程池當(dāng)前運(yùn)行的線程與核心線程數(shù)的數(shù)量關(guān)系;

41、如果所述第二業(yè)務(wù)系統(tǒng)本地線程池當(dāng)前運(yùn)行的線程少于核心線程數(shù),則創(chuàng)建新線程執(zhí)行任務(wù);

42、如果所述第二業(yè)務(wù)系統(tǒng)本地線程池當(dāng)前運(yùn)行的線程達(dá)到核心線程數(shù),則將任務(wù)加入消息隊(duì)列,采用阻塞隊(duì)列,直接創(chuàng)建新的線程來處理任務(wù);

43、如果所述第二業(yè)務(wù)系統(tǒng)本地線程池創(chuàng)建新線程使當(dāng)前運(yùn)行的線程超過最大線程數(shù),則通過采用拒絕策略,彈出拒絕執(zhí)行異常,拒絕執(zhí)行任務(wù)。

44、此外,為實(shí)現(xiàn)上述目的,本技術(shù)還提出一種異步消息處理裝置,所述異步消息處理裝置包括:

45、信息接收模塊,用于接收第一業(yè)務(wù)系統(tǒng)發(fā)送的異步消息和本地異步記錄;

46、消息處理模塊,用于處理所述異步消息,根據(jù)處理結(jié)果更新所述本地異步記錄并返回所述第一業(yè)務(wù)系統(tǒng);

47、第一判斷模塊,用于掃描所述本地異步記錄,判斷是否存在超時(shí)未處理或失敗記錄;

48、第二判斷模塊,若存在超時(shí)未處理或失敗記錄,判斷消息中間件是否可用;若所述消息中間件可用,則發(fā)起異步消息重試,否則申請(qǐng)第二業(yè)務(wù)系統(tǒng)異步線程。

49、此外,為實(shí)現(xiàn)上述目的,本技術(shù)還提出一種異步消息處理設(shè)備,所述設(shè)備包括:存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序配置為實(shí)現(xiàn)如上文所述的異步消息處理方法的步驟。

50、此外,為實(shí)現(xiàn)上述目的,本技術(shù)還提出一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上文所述的異步消息處理方法的步驟。

51、此外,為實(shí)現(xiàn)上述目的,本技術(shù)還提供一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上文所述的異步消息處理方法的步驟。

52、本技術(shù)提出的一個(gè)或多個(gè)技術(shù)方案,至少具有以下技術(shù)效果:

53、消息中間件通過接收第一業(yè)務(wù)系統(tǒng)發(fā)送的異步消息和本地異步記錄;處理所述異步消息,根據(jù)處理結(jié)果更新所述本地異步記錄并返回所述第一業(yè)務(wù)系統(tǒng),此時(shí)第一業(yè)務(wù)系統(tǒng)的本地異步記錄得到更新,本地異步記錄可分別存儲(chǔ)在第一業(yè)務(wù)系統(tǒng)和消息中間件的數(shù)據(jù)庫中;掃描所述本地異步記錄,判斷是否存在超時(shí)未處理或失敗記錄;若存在超時(shí)未處理或失敗記錄,判斷消息中間件是否可用;若所述消息中間件可用,則發(fā)起異步消息重試,否則申請(qǐng)第二業(yè)務(wù)系統(tǒng)異步線程。解決不同業(yè)務(wù)場(chǎng)景下消息中間件常見的消息失敗、丟失及冪等重試機(jī)制,缺乏通用異步重試機(jī)制和異構(gòu)降級(jí)機(jī)制的技術(shù)問題,采用異步消息唯一標(biāo)識(shí)方式進(jìn)行異步調(diào)度控制,實(shí)現(xiàn)消息可靠傳遞、唯一消費(fèi)和冪等消費(fèi),構(gòu)建通用的超時(shí)和失敗重試機(jī)制,支持個(gè)性化配置參數(shù)以適用多種應(yīng)用場(chǎng)景,在消息中間件異常時(shí)提供本地線程池的降級(jí)方案。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1