背景
當前專案需要乙個撥測系統來檢測服務是否正常執行,撥測系統需要滿足以下需求:
支援對介面請求結果做判斷。
支援對介面的耗時做判斷。
支援重試:可能在某一瞬間網路出現了延遲,導致介面請求失敗,所以需要重試,連續重試n次失敗才算異常。
失敗告警,可配置不同的告警接收人。
通用、可配置:支援各種場景的介面協議。
圖表展示(可選)。
方案撥測系統原理上就是定時檢查服務,那是否可以偷懶,拿開源的定時任務系統來改造呢。基於這種想法,在研究多個開源專案之後,選擇了xxl-job(當前版本2.2.1)。
改造1. 新增任務
改造任務介面
以上是xxl-job新增定時任務的介面,先修改jobinfo.index.ftl檔案,隱藏掉跟監控無關的字段,隱藏的字段相當於採用了預設值。效果如下:
這裡保留了:
任務描述。
cron:自定義配置執行間隔。
執行模式:常規場景,通過bean+jobhandler即可滿足, 當撥測的介面協議很複雜,無法使用通用的撥測方法時,這裡可以選擇gul模式來自定義請求指令碼。
jobhandler:選擇撥測類別,當前僅提供了介面http撥測,後續會新增其他的撥測型別,比如redis檢查。
失敗重試次數:可能在某一瞬間網路出現了延遲,導致介面請求失敗,所以需要重試,連續重試n次失敗才算異常。
負責人。
任務引數:輸入撥測時需要的引數,比如撥測的url。
開發介面撥測handler
在executor專案開發處理器(xxl-job分為admin和executor兩個專案,admin是管理、分發,executor執行定時任務業務邏輯),撥測url等引數由任務引數來輸入,這裡選擇json作為輸入格式,定義了幾個json欄位:
method:http請求method,可選,預設是post。
resultkeys:字串陣列格式,當介面返回值裡包含了陣列裡的每一項時,才算撥測成功,可選。
postbody:post包體,可選。
htpp撥測handler**:
@component
@slf4j
public class dialtesthandler ", param);
try ]error,result: {}", dialtestconfig.geturl(), str);
xxljoblogger.log("request[{}]error,result: {}", dialtestconfig.geturl(), str);
// 業務返回的錯誤
郵件參考:
http撥測是什麼意思 快速構建撥測系統
背景 當前專案需要乙個撥測系統來檢測服務是否正常執行,撥測系統需要滿足以下需求 支援對介面請求結果做判斷。支援對介面的耗時做判斷。支援重試 可能在某一瞬間網路出現了延遲,導致介面請求失敗,所以需要重試,連續重試n次失敗才算異常。失敗告警,可配置不同的告警接收人。通用 可配置 支援各種場景的介面協議。...
uma是什麼意思 UMA是什麼意思?
展開全部 uma 不明生物 是636f707962616964757a686964616f31333431376537動畫 進化戰記 betterman 中的一類人造怪物的統稱,是生命工學食料研究所 b.p.l.所長梅崎博士製造出來 協助他利用阿尼瑪斯之花 大量製造蛋白質 具有驚人攻擊性的怪物。阿拉...
是什麼意思?
meta是html中的元標籤,其中包含了對應html的相關資訊,客戶端瀏覽器或伺服器端的程式會根據這些資訊進行處理。http equiv類似於http的頭部協議,它回應給瀏覽器一些有用的資訊,以幫助正確和精確地顯示網頁內容。content 內容型別 重要!這個網頁的格式是文字的,網頁模式 chars...