[發(fā)明專利]一種提升分布式系統(tǒng)處理請求穩(wěn)定性的方法在審
| 申請?zhí)枺?/td> | 201711179984.4 | 申請日: | 2017-11-23 |
| 公開(公告)號: | CN107832165A | 公開(公告)日: | 2018-03-23 |
| 發(fā)明(設計)人: | 莫展鵬;季統(tǒng)凱 | 申請(專利權)人: | 國云科技股份有限公司 |
| 主分類號: | G06F11/07 | 分類號: | G06F11/07;H04L29/08 |
| 代理公司: | 北京科億知識產(chǎn)權代理事務所(普通合伙)11350 | 代理人: | 湯東鳳 |
| 地址: | 523808 廣東省東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 提升 分布式 系統(tǒng) 處理 請求 穩(wěn)定性 方法 | ||
技術領域
本發(fā)明涉及分布式系統(tǒng)開發(fā)技術領域,特別是指一種提升分布式系統(tǒng)處理請求穩(wěn)定性的方法。
背景技術
隨著分布式計算的發(fā)展以及大數(shù)據(jù)分析挖掘技術的興起,單一請求處理的計算量越來越大,處理單一請求所需要協(xié)同計算的節(jié)點規(guī)模越來越大,比如目前有部分搜索引擎為了提高速度,搜索結果往往都放在內(nèi)存中,而單一節(jié)點的內(nèi)存有限,因此需要在多個節(jié)點上并行執(zhí)行搜索處理。與此同時,隨著程序開發(fā)模式的改變,程序的迭代周期越來越短,程序中不可避免存在一些缺陷,某些嚴重的缺陷如果在多節(jié)點上執(zhí)行,可能導致整個計算集群的崩潰,進而影響整個分布式系統(tǒng)處理請求的穩(wěn)定性。在這種情況下,如何排除程序錯誤,提高分布式處理請求穩(wěn)定性就顯得尤為重要。目前一般采用重放日志的方法來排除錯誤,一般步驟如下:
1、重放近期的日志;
2、搜索日志中系統(tǒng)掛起的日志;
3、通過查看系統(tǒng)掛起前請求的詳細信息來定位錯誤原因。
上述方法對于程序員來說是有意義的,但是存在以下問題:
1、并不能阻止程序錯誤的蔓延,也就不能真正提高整個分布式系統(tǒng)的穩(wěn)定性;
2、通過查看大量日志排除錯誤所需的時間較長,針對性不強;
因此,需要設計一種有效的提高分布式系統(tǒng)處理請求時穩(wěn)定性的方法。
發(fā)明內(nèi)容
本發(fā)明解決的技術問題在于提出一種提升分布式系統(tǒng)處理請求穩(wěn)定性的方法。
本發(fā)明解決上述技術問題的技術方案是:
所述的方法是先將服務請求向分布式系統(tǒng)的某個節(jié)點發(fā)生處理請求,再確認處理成功后再向其他節(jié)點發(fā)送請求;如失敗則向另一節(jié)點發(fā)送請求;如再次失敗則拒絕在系統(tǒng)的節(jié)點執(zhí)行請求。
所述的方法具體包括以下步驟:
步驟1:分布式系統(tǒng)的后臺服務運行在多個節(jié)點組成的集群上,服務端先向后臺服務所在的其中一個節(jié)點發(fā)送請求;
步驟2:如果請求被成功執(zhí)行,那么請求在所有節(jié)點上都不會出錯,將請求發(fā)送到后臺服務的整個集群上;
步驟3:如果請求失敗,那么再選一個后臺服務所在的節(jié)點,向其發(fā)送請求,重新驗證請求執(zhí)行的結果;
步驟4:如果請求再次執(zhí)行失敗,則拒絕在任何節(jié)點上執(zhí)行請求,同時把請求的信息寫入日志,將來用于進一步調(diào)試。
所述分布式系統(tǒng)的后臺服務指的是可重復執(zhí)行請求的集群服務,每個后臺服務有相同的若干個節(jié)點。
所述請求被成功執(zhí)行指的請求在后臺服務節(jié)點上執(zhí)行過程中沒有引起節(jié)點程序拋出異常,而且能返回執(zhí)行結果,包括正確的結果和錯誤的結果;所述錯誤的結果指的是后臺服務程序能正常退出,但是執(zhí)行的程序路徑是非正常路徑;
所述請求失敗指的是在請求在后臺服務節(jié)點上執(zhí)行后引起節(jié)點程序異常,包括后臺服務崩潰不返回結果以及返回異常的結果。
所述拒絕在任何節(jié)點上執(zhí)行請求指的是相同的請求在服務端就被攔截,不發(fā)送到任何一個后臺服務的節(jié)點上。
本發(fā)明的有益效果:
本發(fā)明的方法能在增加的性能開銷不多的情況下明顯縮短大型分布式系統(tǒng)整體的響應時間。本發(fā)明可以提升分布式系統(tǒng)處理請求的穩(wěn)定性。
附圖說明
下面結合附圖對本發(fā)明進一步說明:
圖1為本發(fā)明的流程圖。
具體實施方式
下面以Scala下的akka框架為例,描述一種在其上實現(xiàn)本發(fā)明的方法。
首先定義一個正常的Web請求響應流程
在第一請求執(zhí)行失敗時,嵌入處理的代碼:
在akka框架的代碼中如下進行修改:
本發(fā)明的請求可以并行在多個節(jié)點上執(zhí)行,執(zhí)行完成后各自結果進行合并得到最后結果。但本發(fā)明方法首先不使用并行的特性,而是先在其中一個后臺服務所在的節(jié)點上執(zhí)行請求;運用試探的方法對分布式系統(tǒng)的請求進行處理,避免在大規(guī)模分布式系統(tǒng)中服務頻繁迭代遺留缺陷所導致的服務大規(guī)模崩潰的問題。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國云科技股份有限公司,未經(jīng)國云科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711179984.4/2.html,轉載請聲明來源鉆瓜專利網(wǎng)。





