一種識別鏈路異常的方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種識別鏈路異常的方法,所述方法包括:中間件管理器探測中間件的連接狀態(tài),中間件的連接狀態(tài)為異常時,確認中間件實例鏈路異常;中間件的連接狀態(tài)為正常時,在發(fā)起服務(wù)請求前的一個時間片內(nèi)中間件管理器記錄的鏈路入服和退服次數(shù)大于第一閾值,鏈路的報錯率大于第二閾值,且鏈路的報錯次數(shù)大于第三閾值時,確認中間件實例鏈路異常;將所述異常的中間件實例鏈路中的中間件從中間件管理器的中間件集合中剔除,或隔離所述中間件。本發(fā)明還同時公開了另一種識別鏈路異常的方法及兩種識別鏈路異常的裝置。
【專利說明】
一種識別鏈路異常的方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及數(shù)據(jù)傳輸技術(shù),尤其涉及一種識別鏈路異常的方法及裝置。
【背景技術(shù)】
[0002] 在互聯(lián)網(wǎng)時代,各種互聯(lián)網(wǎng)信息呈幾何級的增長,為了準(zhǔn)確、穩(wěn)定的保存及獲取需 要的信息,衍生了各種大型的信息技術(shù)(Information Technology,IT)系統(tǒng);IT系統(tǒng)包括 多個中間件實例,每個中間件實例包含多個應(yīng)用服務(wù);各應(yīng)用服務(wù)之間相互調(diào)用使得數(shù)據(jù) 傳輸?shù)亩鄠€環(huán)節(jié)使用多點對多點的業(yè)務(wù)分發(fā)架構(gòu)。
[0003] 多點對多點的業(yè)務(wù)分發(fā)架構(gòu)可采用長連接鏈路模式或短連接鏈路模式;長連接鏈 路模式是指連接一旦建立,鏈路不再斷開;短連接鏈路模式是指連接需要時才申請建立連 接鏈路。在使用短連接鏈路時,由于連接的頻繁申請和建立,使得業(yè)務(wù)的處理效率降低,月艮 務(wù)器資源消耗過大;在使用長連接鏈路時,若出現(xiàn)單鏈路偶發(fā)性異常,則長連接鏈路難以恢 復(fù),導(dǎo)致集群停服。系統(tǒng)的宕機或服務(wù)不可用直接影響企業(yè)的形象、營業(yè)額以及用戶的用戶 體驗。
[0004] 客戶關(guān)系管理(Customer Relationship Management,CRM)系統(tǒng)為提高處理效率 使用長連接鏈路模式,CRM系統(tǒng)中每臺中間件實例由負載均衡器進行業(yè)務(wù)分發(fā),工作模式如 圖1所示,客戶請求的業(yè)務(wù)被負載均衡器隨機分發(fā)至一臺中間件上,中間件集群幾十條鏈 路相互獨立,每個鏈路都可能接收到客戶端發(fā)起的請求,并與后端數(shù)據(jù)庫進行交互辦理業(yè) 務(wù);因此,在出現(xiàn)中間件長連接鏈路偶發(fā)性異常時,由于負載均衡器不能及時判斷中間件和 服務(wù)的狀態(tài)是否正常,仍會將新的業(yè)務(wù)請求分配至發(fā)生故障的中間件和服務(wù)鏈路上,導(dǎo)致 部分用戶辦理業(yè)務(wù)失敗。
[0005] 多點對多點的業(yè)務(wù)分發(fā)架構(gòu)的下層部署監(jiān)控程序在查證到某條鏈路異常時,便立 即向上層發(fā)送停止請求;但是,由于上層有多點,反應(yīng)速度快慢不一,反應(yīng)速度慢的節(jié)點仍 會因為時間差而發(fā)送多筆業(yè)務(wù)請求至下層的異常節(jié)點,導(dǎo)致多筆業(yè)務(wù)失敗;并且,在下層某 個節(jié)點出現(xiàn)死機等極端異常情況時,無法向上層傳遞斷開請求,導(dǎo)致大量業(yè)務(wù)失敗。多點 對多點的業(yè)務(wù)分發(fā)架構(gòu)的上層部署監(jiān)控程序查證到某條鏈路異常時,即自動斷開鏈路,停 止發(fā)送請求;但是,遇到下層各節(jié)點的對外接口均出現(xiàn)統(tǒng)一的抖動等偶發(fā)性的異常時、或上 層節(jié)點與下層節(jié)點之間的網(wǎng)絡(luò)出現(xiàn)短時間異常時由于上層多節(jié)點之間彼此平等、互不統(tǒng)屬 導(dǎo)致下層多個節(jié)點被上層節(jié)點直接屏蔽,上層節(jié)點也無法獲知下層各節(jié)點是否恢復(fù)正常工 作,何時恢復(fù)正常工作,最終可能引起大規(guī)模的錯誤判斷,影響業(yè)務(wù)辦理。
[0006] 具體地,在CRM系統(tǒng)可能會出現(xiàn)如下局面:1、由于負載均衡器只能判斷中間件實 例是否正常,當(dāng)中間件鏈路處于"假死"狀態(tài),而前端負載均衡器認為該中間件處于"在服狀 態(tài)",仍會將客戶端業(yè)務(wù)請求發(fā)送至該鏈路處理,不能及時的讓客戶端感知故障;2、當(dāng)某一 中間件辦理業(yè)務(wù)效率總體下降時,負載均衡器只能判斷中間件實例是否正常,不能統(tǒng)計一 段時間內(nèi)中間件業(yè)務(wù)辦理的失敗率;3、當(dāng)中間件的某一服務(wù)發(fā)生異常時,不能根據(jù)單個中 間件服務(wù)辦理業(yè)務(wù)的失敗率對異常中間件和服務(wù)鏈路進行隔離、恢復(fù);4、當(dāng)由于主機性能 降低導(dǎo)致業(yè)務(wù)辦理失敗時,不能通過重啟主機等主機層面的方法進行異常中間件和服務(wù)鏈 路自動恢復(fù);5、單一中間件實例和服務(wù)性能降低時,需要大量人力和時間分析、排除和回復(fù) 異常中間件和服務(wù)鏈路。
【發(fā)明內(nèi)容】
[0007] 有鑒于此,本發(fā)明實施例期望提供一種識別鏈路異常的方法及裝置,能夠統(tǒng)計一 段時間內(nèi)中間件業(yè)務(wù)辦理的失敗率,根據(jù)單個中間件服務(wù)辦理業(yè)務(wù)的失敗率對異常中間件 和服務(wù)鏈路進行隔離和恢復(fù),及時的智能的讓客戶端感知中間件實例故障。
[0008] 本發(fā)明實施例的技術(shù)方案是這樣實現(xiàn)的:
[0009] 本發(fā)明實施例提供一種識別鏈路異常的方法,所述方法包括:中間件管理器探測 中間件的連接狀態(tài),中間件的連接狀態(tài)為異常時,確認中間件實例鏈路異常;中間件的連接 狀態(tài)為正常時,在發(fā)起服務(wù)請求前的一個時間片內(nèi)中間件管理器記錄的鏈路入服和退服次 數(shù)大于第一閾值,鏈路的報錯率大于第二閾值,且鏈路的報錯次數(shù)大于第三閾值時,確認中 間件實例鏈路異常;將所述異常的中間件實例鏈路中的中間件從中間件管理器的中間件集 合中剔除,或隔離所述中間件。
[0010] 上述實現(xiàn)方案中,所述隔離的中間件信息在各中間件之間共享。
[0011] 上述實現(xiàn)方案中,所述方法還包括:中間件管理器監(jiān)測、記錄中間件實例鏈路的業(yè) 務(wù)量和業(yè)務(wù)處理效率。
[0012] 本發(fā)明實施例還提供另一種識別鏈路異常的方法,所述方法包括:中間件服務(wù)在 一個時間切片內(nèi)反饋的中間件實例鏈路報錯次數(shù)大于第四閾值時,中間件管理器確認中間 件服務(wù)異常;或,接收到第三方應(yīng)用推送的異常服務(wù)信息時,中間件管理器確認中間件服務(wù) 異常;隔離異常的中間件服務(wù)。
[0013] 上述實現(xiàn)方案中,所述隔離的中間件服務(wù)信息在各中間件之間共享,所述確認中 間件服務(wù)異常后,所述方法還包括:中間件管理器將接收的服務(wù)請求路由至正常的中間件 服務(wù)。
[0014] 上述實現(xiàn)方案中,異常的中間件服務(wù)在時間一個切片內(nèi)反饋的中間件實例鏈路報 錯次數(shù)小于第四閾值時,中間件管理器恢復(fù)所述異常中間件服務(wù)的鏈路路由。
[0015] 本發(fā)明實施例還提供一種識別鏈路異常的裝置,所述裝置應(yīng)用于中間件管理器, 所述裝置包括:探測模塊、第一確認模塊、第一判斷模塊和第一處理模塊;其中,
[0016] 所述探測模塊,用于探測中間件的連接狀態(tài);
[0017] 所述第一確認模塊,用于在探測模塊探測中間件的連接狀態(tài)為異常時,確認中間 件實例鏈路異常;
[0018] 所述第一判斷模塊,用于在探測模塊探測中間件的連接狀態(tài)為正常時,判斷在發(fā) 起服務(wù)請求前的一個時間片內(nèi)中間件管理器記錄的鏈路入服和退服次數(shù)是否大于第一閾 值,鏈路的報錯率是否大于第二閾值,且鏈路的報錯次數(shù)是否大于第三閾值;
[0019] 所述第一確認模塊,還用于在所述第一判斷模塊判斷在發(fā)起服務(wù)請求的一個時間 片內(nèi)中間件管理器記錄的鏈路入服和退服次數(shù)大于第一閾值,鏈路的報錯次數(shù)大于第二閾 值,且鏈路的報錯次數(shù)大于第三閾值時,確認中間件實例鏈路異常;
[0020] 所述第一處理模塊,用于在第一確認模塊確認中間件實例鏈路異常后,將所述中 間件從中間件管理器的中間件集合中剔除,或隔離所述中間件。
[0021] 上述實現(xiàn)方案中,所述隔離的中間件信息在各中間件之間共享。
[0022] 上述實現(xiàn)方案中,所述裝置還包括:記錄模塊,用于監(jiān)測、記錄中間件實例鏈路的 業(yè)務(wù)量和業(yè)務(wù)處理效率。
[0023] 本發(fā)明實施例還提供另一種識別鏈路異常的裝置,所述裝置應(yīng)用于中間件管理 器,所述裝置包括:第二判斷模塊、第二確認模塊、接收模塊和第二處理模塊;其中,
[0024] 所述第二判斷模塊,用于判斷中間件服務(wù)在一個時間切片內(nèi)反饋的中間件實例鏈 路報錯次數(shù)是否大于第四閾值;
[0025] 所述第二確認模塊,用于在所述第二判斷模塊判斷中間件服務(wù)在一個時間切片內(nèi) 反饋的中間件實例鏈路報錯次數(shù)大于第四閾值時,確認中間件服務(wù)異常;
[0026] 所述接收模塊,用于接收第三方應(yīng)用推送的異常服務(wù)信息;
[0027] 所述第二確認模塊,還用于在所述接收模塊接收到第三方應(yīng)用推送的異常服務(wù)信 息時,確認中間件服務(wù)異常;
[0028] 所述第二處理模塊,用于隔離異常的中間件服務(wù)。
[0029] 上述實現(xiàn)方案中,所述隔離的中間件服務(wù)信息在各中間件之間共享,所述第二處 理模塊,還用于將接收的服務(wù)請求路由至正常的中間件服務(wù)。
[0030] 上述實現(xiàn)方案中,所述第二處理模塊,還用于異常的中間件服務(wù)在一個時間切片 內(nèi)反饋的中間件實例鏈路報錯次數(shù)小于第四閾值時,恢復(fù)所述異常中間件服務(wù)的鏈路路 由。
[0031] 本發(fā)明實施例所提供的識別鏈路異常的方法及裝置,中間件管理器探測中間件的 連接狀態(tài),中間件的連接狀態(tài)為異常時,確認中間件實例鏈路異常;中間件的連接狀態(tài)為正 常時,在發(fā)起服務(wù)請求的一個時間片內(nèi)中間件管理器記錄的鏈路入服和退服次數(shù)大于第一 閾值,鏈路的報錯次數(shù)大于第二閾值,且鏈路的報錯次數(shù)大于第三閾值時,確認中間件實例 鏈路異常;將所述異常的中間件實例鏈路中的中間件從中間件管理器的中間件集合中剔 除,或隔離所述中間件;中間件服務(wù)在一個時間切片內(nèi)反饋的中間件實例鏈路報錯次數(shù)大 于第四閾值時,中間件管理器確認中間件服務(wù)異常;或,接收到第三方應(yīng)用推送的異常服務(wù) 信息時,中間件管理器確認中間件服務(wù)異常;隔離異常的中間件服務(wù)。如此,通過監(jiān)測、記錄 中間件實例鏈路的業(yè)務(wù)量和業(yè)務(wù)處理效率能夠智能的判斷在一個時間片內(nèi)中間件實例鏈 路的異常情況,及時的讓客戶端感知故障,并對異常的中間件和服務(wù)鏈路進行隔離和恢復(fù)。
【附圖說明】
[0032] 圖1為本發(fā)明CRM系統(tǒng)的工作模式示意圖;
[0033] 圖2為本發(fā)明業(yè)務(wù)處理流程示意圖;
[0034] 圖3為本發(fā)明實施例一種識別鏈路異常的方法的基本處理流程示意圖;
[0035] 圖4為本發(fā)明實施例另一種識別鏈路異常的方法的基本處理流程示意圖;
[0036] 圖5為本發(fā)明實施例識別鏈路異常的方法的詳細處理流程;
[0037] 圖6為本發(fā)明實施例時間切片內(nèi)服務(wù)異常示意圖;
[0038] 圖7為本發(fā)明實施例一種業(yè)務(wù)請求分發(fā)至中間件服務(wù)器的示意圖;
[0039] 圖8為本發(fā)明實施例另一種業(yè)務(wù)請求分發(fā)至中間件服務(wù)器的示意圖;
[0040] 圖9為本發(fā)明實施例一種識別鏈路異常的裝置的組成結(jié)構(gòu)示意圖;
[0041] 圖10為本發(fā)明實施例另一種識別鏈路異常的裝置的組成結(jié)構(gòu)示意圖。
【具體實施方式】
[0042] 現(xiàn)有技術(shù)中的業(yè)務(wù)處理流程,如圖2所示,通過負載均衡器按照區(qū)域、號段和輪 循等規(guī)則將用戶的業(yè)務(wù)請求均衡地連接到各個前端Web服務(wù)器,Web服務(wù)器再將所述用 戶業(yè)務(wù)請求分發(fā)到中間件管理器,由中間件管理器進行綜合判斷,調(diào)用具體中間件實例 及相關(guān)服務(wù)進行業(yè)務(wù)邏輯處理,最終轉(zhuǎn)換為具體的結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)語句到數(shù)據(jù)庫執(zhí)行,并將執(zhí)行結(jié)果反饋給用戶。
[0043] 本發(fā)明實施例中,中間件管理器探測中間件的連接狀態(tài),中間件的連接狀態(tài)為異 常時,確認中間件實例鏈路異常;中間件的連接狀態(tài)為正常時,在發(fā)起服務(wù)請求的一個時間 片內(nèi)中間件管理器記錄的鏈路入服和退服次數(shù)大于第一閾值,鏈路的報錯次數(shù)大于第二閾 值,且鏈路的報錯次數(shù)大于第三閾值時,確認中間件實例鏈路異常;將所述異常的中間件實 例鏈路中的中間件從中間件管理器的中間件集合中剔除,或隔離所述中間件。中間件服務(wù) 在一個時間切片內(nèi)反饋的中間件實例鏈路報錯次數(shù)大于第四閾值時,中間件管理器確認中 間件服務(wù)異常;或,接收到第三方應(yīng)用推送的異常服務(wù)信息時,中間件管理器確認中間件服 務(wù)異常;隔離異常的中間件服務(wù)。
[0044] 本發(fā)明實施例一種識別鏈路異常的方法的基本處理流程,如圖3所示,包括以下 步驟:
[0045] 步驟101,中間件管理器探測中間件的連接狀態(tài),中間件的連接狀態(tài)為異常時,確 認中間件實例鏈路異常;
[0046] 具體地,中間件管理器通過使用weblogic應(yīng)用服務(wù)和應(yīng)用程序編程接口 (Application Programming Interface,API)定時探測中間件的連接狀態(tài),連接狀態(tài)為非 true時,表明中間件的連接狀態(tài)異常,則中間件管理器確認中間件實例鏈路異常。
[0047] 步驟102,中間件的連接狀態(tài)為正常時,在發(fā)起服務(wù)請求的一個時間片內(nèi)中間件管 理器記錄的鏈路入服和退服次數(shù)大于第一閾值,鏈路的報錯率大于第二閾值,且鏈路的報 錯次數(shù)大于第三閾值時,確認中間件實例鏈路異常;
[0048] 具體地,中間件管理器探測中間件的連接狀態(tài),連接狀態(tài)為true時,表明中間件 的連接狀態(tài)正常;中間件管理器監(jiān)測、記錄中間件實例鏈路的業(yè)務(wù)量和業(yè)務(wù)處理效率,在發(fā) 起服務(wù)請求前的一個時間片內(nèi),中間件管理器記錄的鏈路入服和退服次數(shù)大于第一閾值, 鏈路的報錯率大于第二閾值,且鏈路的報錯次數(shù)大于第三閾值時,確認中間件實例鏈路異 常;
[0049] 其中,所述報錯率是指中間件實例鏈路的報錯次數(shù)占同等地位的中間件實例鏈路 的比率;所述一個時間片、第一閾值、第二閾值和第三閾值均可以根據(jù)實際的系統(tǒng)負載進行 設(shè)定;所述一個時間片可以為60s,90s等,所述第一閾值可以為90次、100次等,所述報錯 率可以為80%、85%等。
[0050] 在確認中間件實例鏈路異常后,所述方法還包括:
[0051] 步驟103,中間件管理器將所述中間件從自身的中間件實例集合中剔除,或隔離該 中間件;
[0052] 這里,中間件管理器再接收到服務(wù)請求時,將所述服務(wù)請求分發(fā)至正常的中間件 實例,并自動重置異常中間件實例鏈路的各環(huán)節(jié)資源,在重置3次仍未恢復(fù)為正常中間件 實例鏈路時,自動停止該異常鏈路,并告警;當(dāng)然,重置次數(shù)也可以根據(jù)實際需要設(shè)置為2 次、4次等;由于下層出現(xiàn)多數(shù)節(jié)點同時異常的概率極小,即使出現(xiàn),通過隔離中間件也無 法解決該問題,因此,在隔離的中間件超過總中間件的一定比例,如40%時,不再隔離新的 中間件;在中間件的連接狀態(tài)由非true變?yōu)閠rue時,中間件管理器將自動恢復(fù)該中間件的 連接,新的業(yè)務(wù)請求也將分發(fā)至恢復(fù)的中間件。
[0053] 本發(fā)明實施例另一種識別鏈路異常的方法的基本處理流程,如圖4所示,包括以 下步驟:
[0054] 步驟201,確認中間件服務(wù)在一個時間切片內(nèi)反饋的中間件實例鏈路報錯次數(shù)是 否大于第四閾值,或是否接收到第三方應(yīng)用推送的異常服務(wù)信息;
[0055] 這里,所述一個時間片和所述第四閾值根據(jù)實際的系統(tǒng)負載進行設(shè)定,可以為 60s,90s等,所述第四閾值可以是5次,6次等。
[0056] 步驟202,中間件管理器確認中間件服務(wù)異常;
[0057] 具體地,當(dāng)中間件服務(wù)在一個時間切片內(nèi)反饋的中間件實例鏈路報錯次數(shù)大于第 四閾值,或中間件管理器接收到第三方應(yīng)用推送的異常服務(wù)信息時,中間件管理器確認中 間件服務(wù)異常。
[0058] 在確認中間件服務(wù)異常之后,本發(fā)明實施例所述方法還包括:
[0059] 步驟203,中間件管理器隔離異常的中間件服務(wù),將接收的服務(wù)請求路由至正常的 中間件服務(wù)。
[0060] 步驟204,異常的中間件服務(wù)在時間一個切片內(nèi)反饋的中間件實例鏈路報錯次數(shù) 小于第四閾值時,中間件管理器恢復(fù)所述異常中間件服務(wù)的鏈路路由。
[0061] 以TD0M1、TD0M2、TD0M3三臺具有相同處理能力的tuxedo中間件為例,業(yè)務(wù)調(diào)用的 服務(wù)為sGetUserMsg,時間片為60S,在一個中間件鏈路上中間件服務(wù)異常的次數(shù)超過5次, 則隔離該中間件;本發(fā)明實施例識別鏈路異常的方法的詳細處理流程,如圖5所示,包括以 下步驟:
[0062] 步驟301,檢查中間件TD0M1在60S內(nèi)發(fā)生了 6次服務(wù)異常,隔離中間件TD0M1 ;
[0063] 具體地,本發(fā)明實施例時間切片內(nèi)服務(wù)異常示意圖,如圖6所示,圓點表示發(fā)生服 務(wù)異常,即:在60S內(nèi),發(fā)生了 6次服務(wù)異常。
[0064] 步驟302,檢查TD0M2和TD0M3在60S內(nèi)均發(fā)生了 2次服務(wù)異常,新的業(yè)務(wù)請求被 路由至TD0M2和TD0M3 ;
[0065] 這里,若TD0M2和TD0M3在60S內(nèi)均發(fā)生了 5次以上的服務(wù)異常,則隔離TD0M2和 TD0M3,即全部中間件均被隔離;此時,若接收到新的業(yè)務(wù)請求,中間件管理器向用戶反饋沒 有可用的中間件處理該業(yè)務(wù)。
[0066] 步驟303,在第61S時刻重新檢查中間件TD0M1發(fā)生的服務(wù)異常次數(shù);
[0067] 具體地,如圖6所示,在61S時刻,檢查中間件TD0M1在1S至61S內(nèi)發(fā)生3次服務(wù) 異常,則恢復(fù)中間件TD0M1處理sGetUserMsg服務(wù)。
[0068] 步驟304,在第62S時刻重新檢查中間件TD0M1發(fā)生的服務(wù)異常次數(shù);
[0069] 具體地,如圖6所示,在第62S時刻,檢查中間件TD0M1在2S至62S內(nèi)發(fā)生8次服 務(wù)異常,隔離中間件TD0M1 ;此時,中間件管理器不會將sGetUserMsg服務(wù)請求分發(fā)至中間 件 TD0M1。
[0070] 以一臺中間件管理器管理四臺中間件服務(wù)器為例,如圖7所示,當(dāng)中間件的連接 狀態(tài)均為true時,業(yè)務(wù)請求隨機分發(fā)至四臺中間件服務(wù)器上;當(dāng)?shù)谌齻€中間件的連接狀態(tài) 為非true時,如圖8所示,業(yè)務(wù)請求分發(fā)至第一臺、第二臺和第四臺中間件服務(wù)器。
[0071] 本發(fā)明上述實施例中,中間件管理器通過時間切片的方式記錄中間件的上層和中 間件的下層的運行信息,并對記錄的信息進行統(tǒng)籌管理,實現(xiàn)了上層中間件對多個下層中 間件之間鏈路異常的自動判定,解決了下層中間件報錯、隔離不及時,隔離的故障上層中間 件難以自動恢復(fù)等問題;使得上層隔離的中間件鏈路的信息會在各個中間件之間共享;當(dāng) 隔離的中間件數(shù)量超過預(yù)設(shè)的值,即不在隔離新的中間件,以此來規(guī)避上層中間件對下次 中間件異常的錯誤判定,解決了單純靠中間件上層判定或中間件下層通知等傳統(tǒng)的方式出 現(xiàn)的誤判、故障中間件恢復(fù)時差等問題。
[0072] 下面詳細說明與現(xiàn)有技術(shù)相比,利用時間切片的方式識別鏈路異??捎行岣咧?間件系統(tǒng)服務(wù)的可用性。
[0073] 現(xiàn)有技術(shù)中,一個中間件資源包括一個中間件實例資源和多個中間件服務(wù)資源, 不考慮其他主機資源和存儲資源的可用性,只對中間件實例和中間件服務(wù)的可用性進行評 估;現(xiàn)有技術(shù)中,用戶的業(yè)務(wù)請求隨機的分配到每一臺中間件,所有中間件資源的可用性均 值即為整個系統(tǒng)的可用性;假設(shè)有η臺中間件資源,每臺中間件實例資源的可用性均為Ai, 每臺中間件服務(wù)的可用性為Asn,針對其中的某一服務(wù),如sGetUserMsg服務(wù)的可用性進行 計,則在未使用時間切片方法情況下,每臺中間件資源sGetUserMsg服務(wù)的可用性為:
[0074] Aan = Ai*Asn (1);
[0075] 由于在正常模式下,請求隨機的分配到一臺中間件資源,每臺中間件實例的可用 性亦相同,所以整個中間件資源的可用性可計算為每臺中間件資源的可用性求和的均值,
所以
[007d
[0077] 其中,為系統(tǒng)總體的可用性,Aan :每臺中間件資源的可用性,Ai為單個中間件實 例的可用性,Asn為單個服務(wù)可用性。
[0078] 利用時間切片的方式,由于使用了中間件管理器對中間件實例的可用性和中間件 服務(wù)的可用性進行時間切片掛歷,中間件實例的可用性和中間件服務(wù)的可用性都由中間件 管理器自主判斷,并自動分發(fā)至可用的中間件實例和中間件服務(wù)上;因此,只要有一臺中間 件的sGetUserMsg服務(wù)可用,貝lj整個中間件系統(tǒng)的sGetUserMsg服務(wù)可用,sGetUserMsg服 務(wù)的可用性為:
[0079]
( 4 )j
[0080] 其中,Ι-Asn為單個sGetUserMsg服務(wù)非可用性值,Π 為連乘計算,η為正整數(shù);
[0081] 在時間切片模式下,只有當(dāng)所有中間件實例的sGetUserMsg服務(wù)不可用時,該服 務(wù)才變?yōu)椴豢捎?;因此,整個中間件實例sGetUserMsg服務(wù)不可用值為:
[0082]
( 5 );
[0083] 由于中間件服務(wù)可用性的前提為中間件實例可用,所以,關(guān)聯(lián)上述中間件實例可 用性值,則整個中間件資源sGetUserMsg服務(wù)可用性計算為:
[0084]
( 6 );
[0085] 其中,Aa為中剛午糸統(tǒng)的叫用性,Ai為單個中間件實例的可用性,η為中間件的數(shù) 量,Asn為單個服務(wù)的可用性。
[0086] 根據(jù)正常模式和時間切片模式下整個系統(tǒng)某一服務(wù)可用性公式進行計算,為更加 明顯對比出兩者的差異和計算方便,假設(shè):單個中間件實例可用性值A(chǔ)i為0. 955,每個服務(wù) 可用性值A(chǔ)sn均為0. 905,共有10臺中間件,即η = 10,則正常模式下,中間件系統(tǒng)的可用 性為:
[0087]
[0088] 時間切片模式下,中間件系統(tǒng)的可用性為:
[0089]
[0090] 可以看出,利用時間切片的方式識別鏈路異??捎行岣咧虚g件系統(tǒng)服務(wù)的可用 性。
[0091] 為實現(xiàn)上述識別鏈路異常的方法,本發(fā)明實施例還提供一種識別鏈路異常的方法 的裝置,所述裝置應(yīng)用于中間件管理器,所述裝置的組成結(jié)構(gòu),如圖9所示,包括:探測模塊 11、第一確認模塊12、第一判斷模塊13和第一處理模塊14 ;其中,
[0092] 所述探測模塊11,用于探測中間件的連接狀態(tài);
[0093] 所述第一確認模塊12,用于在探測模塊11探測中間件的連接狀態(tài)為異常時,確認 中間件實例鏈路異常;
[0094] 所述第一判斷模塊13,用于在探測模塊11探測中間件的連接狀態(tài)為正常時,判斷 在發(fā)起服務(wù)請求前的一個時間片內(nèi)中間件管理器記錄的鏈路入服和退服次數(shù)是否大于第 一閾值,鏈路的報錯率是否大于第二閾值,且鏈路的報錯次數(shù)是否大于第三閾值;
[0095] 所述第一確認模塊12,還用于在所述第一判斷模塊13判斷在發(fā)起服務(wù)請求的一 個時間片內(nèi)中間件管理器記錄的鏈路入服和退服次數(shù)大于第一閾值,鏈路的報錯次數(shù)大于 第二閾值,且鏈路的報錯次數(shù)大于第三閾值時,確認中間件實例鏈路異常;
[0096] 所述第一處理模塊14,用于在第一確認模塊12確認中間件實例鏈路異常后,將所 述中間件從中間件管理器的中間件集合中剔除,或隔離該中間件。。
[0097] 上述實現(xiàn)方案中,所述裝置還包括:記錄模塊15,用于監(jiān)測、記錄中間件實例鏈路 的業(yè)務(wù)量和業(yè)務(wù)處理效率。
[0098] 上述實現(xiàn)方案中,所述探測模塊11通過使用weblogic應(yīng)用服務(wù)和API定時探測 中間件的連接狀態(tài),連接狀態(tài)為非true時,表明中間件的連接狀態(tài)異常,則中間件管理器 確認中間件實例鏈路異常。
[0099] 上述實現(xiàn)方案中,所述報錯率是指中間件實例鏈路的報錯次數(shù)占同等地位的中間 件實例鏈路的比率;所述一個時間片、第一閾值、第二閾值和第三閾值均可以根據(jù)實際的系 統(tǒng)負載進行設(shè)定;所述一個時間片可以為60s,90s等,所述第一閾值可以為90次、100次 等,所述報錯率可以為80%、85%等。
[0100] 本發(fā)明實施例還提供另一種識別鏈路異常的裝置,所述裝置應(yīng)用于中間件管理 器,所述裝置的組成結(jié)構(gòu),如圖10所示,包括:第二判斷模塊21、第二確認模塊22、接收模塊 23和第二處理模塊24 ;其中,
[0101] 所述第二判斷模塊21,用于判斷中間件服務(wù)在一個時間切片內(nèi)反饋的中間件實例 鏈路報錯次數(shù)是否大于第四閾值;
[0102] 所述第二確認模塊22,用于在所述第二判斷模塊判斷中間件服務(wù)在一個時間切片 內(nèi)反饋的中間件實例鏈路報錯次數(shù)大于第四閾值時,確認中間件服務(wù)異常;
[0103] 所述接收模塊23,用于接收第三方應(yīng)用推送的異常服務(wù)信息;
[0104] 所述第二確認模塊22,還用于在所述接收模塊接收到第三方應(yīng)用推送的異常服務(wù) 信息時,確認中間件服務(wù)異常。
[0105] 所述第二處理模塊24,用于隔離異常的中間件服務(wù);
[0106] 上述實現(xiàn)方案中,所述第二處理模塊24,還用于將接收的服務(wù)請求路由至正常的 中間件服務(wù)。
[0107] 上述實現(xiàn)方案中,所述第二處理模塊24,還用于異常的中間件服務(wù)在一個時間切 片內(nèi)反饋的中間件實例鏈路報錯次數(shù)小于第四閾值時,恢復(fù)所述異常中間件服務(wù)的鏈路路 由。
[0108] 上述實現(xiàn)方案中,所述一個時間片和所述第四閾值根據(jù)實際的系統(tǒng)負載進行設(shè) 定,可以為60s,90s等,所述第四閾值可以是5次,6次等。
[0109] 需要說明的是,在實際應(yīng)用中,所述探測模塊11、第一確認模塊12、第一判斷模塊 13、第一處理模塊14、記錄模塊15、第二判斷模塊21、第二確認模塊22、接收模塊23和第二 處理模塊24的功能可由位于中間件管理器上的中央處理器(CPU)、或微處理器(MPU)、或數(shù) 字信號處理器(DSP)、或可編程門陣列(FPGA)實現(xiàn)。
[0110] 以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
【主權(quán)項】
1. 一種識別鏈路異常的方法,其特征在于,所述方法包括: 中間件管理器探測中間件的連接狀態(tài),中間件的連接狀態(tài)為異常時,確認中間件實例 鏈路異常; 中間件的連接狀態(tài)為正常時,在發(fā)起服務(wù)請求前的一個時間片內(nèi)中間件管理器記錄的 鏈路入服和退服次數(shù)大于第一閾值,鏈路的報錯率大于第二閾值,且鏈路的報錯次數(shù)大于 第三閾值時,確認中間件實例鏈路異常; 將所述異常的中間件實例鏈路中的中間件從中間件管理器的中間件集合中剔除,或隔 離所述中間件。2. 根據(jù)權(quán)利要求1所述識別鏈路異常的方法,其特征在于,所述隔離的中間件信息在 各中間件之間共享。3. 根據(jù)權(quán)利要求1或2所述識別鏈路異常的方法,其特征在于,所述方法還包括: 中間件管理器監(jiān)測、記錄中間件實例鏈路的業(yè)務(wù)量和業(yè)務(wù)處理效率。4. 一種識別鏈路異常的方法,其特征在于,所述方法包括: 中間件服務(wù)在一個時間切片內(nèi)反饋的中間件實例鏈路報錯次數(shù)大于第四閾值時,中間 件管理器確認中間件服務(wù)異常;或,接收到第三方應(yīng)用推送的異常服務(wù)信息時,中間件管理 器確認中間件服務(wù)異常; 隔離異常的中間件服務(wù)。5. 根據(jù)權(quán)利要求4所述識別鏈路異常的方法,其特征在于,所述隔離的中間件服務(wù)信 息在各中間件之間共享,所述確認中間件服務(wù)異常后,所述方法還包括:中間件管理器將接 收的服務(wù)請求路由至正常的中間件服務(wù)。6. 根據(jù)權(quán)利要求4或5所述識別鏈路異常的方法,其特征在于,異常的中間件服務(wù)在時 間一個切片內(nèi)反饋的中間件實例鏈路報錯次數(shù)小于第四閾值時,中間件管理器恢復(fù)所述異 常中間件服務(wù)的鏈路路由。7. -種識別鏈路異常的裝置,所述裝置應(yīng)用于中間件管理器,其特征在于,所述裝置包 括:探測模塊、第一確認模塊、第一判斷模塊和第一處理模塊;其中, 所述探測模塊,用于探測中間件的連接狀態(tài); 所述第一確認模塊,用于在探測模塊探測中間件的連接狀態(tài)為異常時,確認中間件實 例鏈路異常; 所述第一判斷模塊,用于在探測模塊探測中間件的連接狀態(tài)為正常時,判斷在發(fā)起服 務(wù)請求前的一個時間片內(nèi)中間件管理器記錄的鏈路入服和退服次數(shù)是否大于第一閾值,鏈 路的報錯率是否大于第二閾值,且鏈路的報錯次數(shù)是否大于第三閾值; 所述第一確認模塊,還用于在所述第一判斷模塊判斷在發(fā)起服務(wù)請求的一個時間片內(nèi) 中間件管理器記錄的鏈路入服和退服次數(shù)大于第一閾值,鏈路的報錯次數(shù)大于第二閾值, 且鏈路的報錯次數(shù)大于第三閾值時,確認中間件實例鏈路異常; 所述第一處理模塊,用于在第一確認模塊確認中間件實例鏈路異常后,將所述中間件 從中間件管理器的中間件集合中剔除,或隔離所述中間件。8. 根據(jù)權(quán)利要求7所述識別鏈路異常的裝置,其特征在于,所述隔離的中間件信息在 各中間件之間共享。9. 根據(jù)權(quán)利要求7或8所述識別鏈路異常的裝置,其特征在于,所述裝置還包括:記錄 模塊,用于監(jiān)測、記錄中間件實例鏈路的業(yè)務(wù)量和業(yè)務(wù)處理效率。10. -種識別鏈路異常的裝置,所述裝置應(yīng)用于中間件管理器,其特征在于,所述裝置 包括:第二判斷模塊、第二確認模塊、接收模塊和第二處理模塊;其中, 所述第二判斷模塊,用于判斷中間件服務(wù)在一個時間切片內(nèi)反饋的中間件實例鏈路報 錯次數(shù)是否大于第四閾值; 所述第二確認模塊,用于在所述第二判斷模塊判斷中間件服務(wù)在一個時間切片內(nèi)反饋 的中間件實例鏈路報錯次數(shù)大于第四閾值時,確認中間件服務(wù)異常; 所述接收模塊,用于接收第三方應(yīng)用推送的異常服務(wù)信息; 所述第二確認模塊,還用于在所述接收模塊接收到第三方應(yīng)用推送的異常服務(wù)信息 時,確認中間件服務(wù)異常; 所述第二處理模塊,用于隔離異常的中間件服務(wù)。11. 根據(jù)權(quán)利要求10所述識別鏈路異常的裝置,其特征在于,所述隔離的中間件服務(wù) 信息在各中間件之間共享,所述第二處理模塊,還用于將接收的服務(wù)請求路由至正常的中 間件服務(wù)。12. 根據(jù)權(quán)利要求10或11所述識別鏈路異常的裝置,其特征在于,所述第二處理模塊, 還用于異常的中間件服務(wù)在一個時間切片內(nèi)反饋的中間件實例鏈路報錯次數(shù)小于第四閾 值時,恢復(fù)所述異常中間件服務(wù)的鏈路路由。
【文檔編號】H04L12/26GK105991305SQ201510044333
【公開日】2016年10月5日
【申請日】2015年1月28日
【發(fā)明人】楊名, 鄭水華, 蘇偉杰
【申請人】中國移動通信集團四川有限公司