[發(fā)明專利]一種服務(wù)熔斷隔離系統(tǒng)和方法有效
| 申請(qǐng)?zhí)枺?/td> | 201710019216.6 | 申請(qǐng)日: | 2017-01-11 |
| 公開(公告)號(hào): | CN106776099B | 公開(公告)日: | 2020-01-03 |
| 發(fā)明(設(shè)計(jì))人: | 湯泉 | 申請(qǐng)(專利權(quán))人: | 北京皮爾布萊尼軟件有限公司 |
| 主分類號(hào): | G06F11/07 | 分類號(hào): | G06F11/07;G06F11/30 |
| 代理公司: | 11337 北京市盛峰律師事務(wù)所 | 代理人: | 梁艷 |
| 地址: | 100080 北京市海*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 服務(wù) 熔斷 隔離 系統(tǒng) 方法 | ||
本發(fā)明公開了一種服務(wù)熔斷隔離系統(tǒng)和方法,涉及服務(wù)故障處理技術(shù)領(lǐng)域。通過實(shí)時(shí)統(tǒng)計(jì)系統(tǒng)監(jiān)控狀況,根據(jù)不同的降級(jí)策略對(duì)服務(wù)進(jìn)行保護(hù),同時(shí)通過熔斷后異步探測(cè)服務(wù)健康狀況、對(duì)服務(wù)進(jìn)行自動(dòng)健康恢復(fù),以及熔斷后返回預(yù)設(shè)回調(diào)結(jié)果,提高用戶體驗(yàn);解決了系統(tǒng)對(duì)不可控風(fēng)險(xiǎn)的依賴,提高了系統(tǒng)的容錯(cuò)能力和穩(wěn)定性,實(shí)時(shí)發(fā)現(xiàn)依賴系統(tǒng)異常、方便問題的定位,加速異常解決。
技術(shù)領(lǐng)域
本發(fā)明涉及服務(wù)故障處理技術(shù)領(lǐng)域,尤其涉及一種服務(wù)熔斷隔離系統(tǒng)和方法。
背景技術(shù)
在大型的軟件系統(tǒng)中,如果調(diào)用的遠(yuǎn)程服務(wù)或者資源由于某種原因無法使用時(shí),如果沒有過載保護(hù),就會(huì)導(dǎo)致請(qǐng)求的資源阻塞在服務(wù)器上等待從而耗盡系統(tǒng)或者服務(wù)器資源。很多時(shí)候剛開始可能只是系統(tǒng)出現(xiàn)了局部的、小規(guī)模的故障,然而由于種種原因,故障影響的范圍越來越大,最終導(dǎo)致業(yè)務(wù)系統(tǒng)的全線崩潰。又稱:雪崩效應(yīng)。
目前,通常采用艙壁模式解決這種現(xiàn)象:即把資源請(qǐng)求進(jìn)行分類,劃分成一個(gè)個(gè)的艙壁。如果有一個(gè)船艙破了進(jìn)水,只影響一個(gè)船艙。例如可以對(duì)不同類型的請(qǐng)求使用線程池來資源隔離,每種類型的請(qǐng)求互不影響,如果一種類型的請(qǐng)求線程資源耗盡,則對(duì)后續(xù)的該類型請(qǐng)求直接返回,不再調(diào)用后續(xù)資源。
艙壁模式存在以下缺點(diǎn):
1)每個(gè)線程池的大小無法快速的估算出一個(gè)合理的大小。
2)由于大量使用線程池,每類請(qǐng)求執(zhí)行涉及到排隊(duì)、調(diào)度和上下文切換。造成cpu資源的浪費(fèi)。
3)由于按類別劃分使用不同的線程池,劃分粒度還是有點(diǎn)大。例如:劃分的一個(gè)線程池的請(qǐng)求由于某一個(gè)調(diào)用的異常,造成線程池耗盡。劃分到這個(gè)線程池的其他請(qǐng)求由于線程池的耗盡也不能正常的提供服務(wù),同樣會(huì)出現(xiàn)小范圍的雪崩效應(yīng)。
4)由于粒度劃分問題、報(bào)警策略不好設(shè)定且收到報(bào)警后不好定位到時(shí)線程池中那個(gè)具體的請(qǐng)求異常。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種服務(wù)熔斷隔離系統(tǒng)和方法,從而解決現(xiàn)有技術(shù)中存在的前述問題。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
一種服務(wù)熔斷隔離系統(tǒng),包括:
配置模塊,用于熔斷參數(shù)動(dòng)態(tài)配置;
熔斷請(qǐng)求判斷模塊,用于判斷外部請(qǐng)求的服務(wù)是否處于熔斷狀態(tài);
熔斷恢復(fù)模塊,用于異步探測(cè)熔斷服務(wù)是否達(dá)到熔斷請(qǐng)求的健康閥值,如果是,則對(duì)所述熔斷服務(wù)進(jìn)行健康恢復(fù);
熔斷報(bào)警模塊,用于發(fā)生服務(wù)熔斷告警提示,并修改內(nèi)存中的該服務(wù)的熔斷狀態(tài);
熔斷健康統(tǒng)計(jì)模塊,用于根據(jù)配置的熔斷策略判斷是否達(dá)到熔斷閥值及服務(wù)狀態(tài)報(bào)表展示,所述服務(wù)狀態(tài)包括:吞吐、異常比和/或監(jiān)控狀態(tài)。
優(yōu)選地,所述熔斷請(qǐng)求判斷模塊,用于判斷所述請(qǐng)求的服務(wù)是否處于熔斷狀態(tài),具體為,用無鎖Map保存統(tǒng)計(jì)數(shù)據(jù),所述統(tǒng)計(jì)數(shù)據(jù)以所述請(qǐng)求的URLPath作為key,以原子類類型的錯(cuò)誤請(qǐng)求次數(shù)、總請(qǐng)求次數(shù)、開始時(shí)間、是否離線為屬性的統(tǒng)計(jì)類作為value,在所述統(tǒng)計(jì)數(shù)據(jù)中,若固定時(shí)間內(nèi)的錯(cuò)誤請(qǐng)求比率或錯(cuò)誤請(qǐng)求次數(shù)達(dá)到預(yù)設(shè)的閥值,則判定所述請(qǐng)求的服務(wù)處于熔斷狀態(tài)。
一種服務(wù)熔斷隔離方法,包括如下步驟:
S1,服務(wù)啟動(dòng),配置服務(wù)加載熔斷策略參數(shù),默認(rèn)為使用本地配置;
S2,外部請(qǐng)求經(jīng)過網(wǎng)關(guān)聚合層到達(dá)熔斷請(qǐng)求判斷模塊;
S3,所述熔斷請(qǐng)求判斷模塊判斷所述請(qǐng)求的服務(wù)是否處于熔斷狀態(tài),如果是,則執(zhí)行S4-S5,否則,執(zhí)行S6-S7;
S4,調(diào)用熔斷回調(diào)函數(shù),并返回回調(diào)結(jié)果;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京皮爾布萊尼軟件有限公司,未經(jīng)北京皮爾布萊尼軟件有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710019216.6/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 服務(wù)票據(jù)發(fā)行系統(tǒng)及服務(wù)票據(jù)發(fā)行服務(wù)
- 出租服務(wù)服務(wù)器和出租服務(wù)系統(tǒng)
- 服務(wù)開放方法及系統(tǒng)、服務(wù)開放服務(wù)器
- 基于服務(wù)券服務(wù)的在線企業(yè)服務(wù)平臺(tái)
- 退稅服務(wù)系統(tǒng)、退稅服務(wù)平臺(tái)及其服務(wù)方法
- 服務(wù)亭(服務(wù)驛站)
- 公共服務(wù)自助服務(wù)機(jī)
- 服務(wù)提供服務(wù)器、服務(wù)提供系統(tǒng)以及服務(wù)提供方法
- 服務(wù)提供服務(wù)器、服務(wù)提供系統(tǒng)以及服務(wù)提供方法
- 服務(wù)提供服務(wù)器、服務(wù)提供系統(tǒng)以及服務(wù)提供方法





