擋闆功能
擋闆功能用于(yú)暫時(shí)保持一(yī / yì /yí)段時(shí)間的(de)當前請求,用于(yú)後置服務的(de)升級或延遲訪問等操作,一(yī / yì /yí)段時(shí)間後或自動釋放,或人(rén)爲(wéi / wèi)釋放。連接保持過程中,gateway會持有當前連接,同時(shí)釋放當前執行線程,當擋闆關閉時(shí)當前請求繼續執行,在(zài)請求者看來(lái)感知不(bù)到(dào)任何變化,隻是(shì)有一(yī / yì /yí)定的(de)延遲。擋闆控制器也(yě)采用樹形的(de)級聯控制結構,隻有當父節點擁有控制權時(shí)子(zǐ)節點在(zài)可以(yǐ)接手進行控制。默認情況下是(shì)隔一(yī / yì /yí)秒對所有被擋住的(de)請求遍曆一(yī / yì /yí)次。
擋闆控制功能示意图如下:
下面是(shì)controller屬性:
屬性 | 描述 |
---|---|
id | 标識,唯一(yī / yì /yí) |
pid | 父節點控制器id |
available | 是(shì)否啓用 |
matcher | 匹配表達式,隻有匹配成功後才執行控制 |
targetExpression | 控制對象表達式 |
holdTime | 保持時(shí)間,默認10000ms,設置爲(wéi / wèi)0則爲(wéi / wèi)一(yī / yì /yí)緻保持 |
maxHoldNum | 最大(dà)保持鏈接數目,默認1000 |
continueWhenTimeout | 當保持時(shí)間到(dào)達時(shí),是(shì)否繼續執行請求,默認爲(wéi / wèi)true |
配置:
holdOn:
values:
- {id: holdOn2, holdTime: 20000, maxHoldNum: 2000, available: false, continueWhenTimeout: true}
- {id: holdOn1, holdTime: 10000, maxHoldNum: 1000, available: false, continueWhenTimeout: true}
params: {p2: '${ip}', p1: constants_abc}
localRecognizers:
- id: recognizer1
keyMap: {aaa: '${aaa}', bbb: '${bbb}'}
type: map
available: false
pipeType: direct
inbound: true