springcloud配置
# sentinel + nacos ds1為自定義數(shù)據(jù)源名稱父泳,可以隨便定義,目的是為了區(qū)分出每條規(guī)則
spring.cloud.sentinel.datasource.ds1.nacos.server-addr=127.0.0.1:8848
spring.cloud.sentinel.datasource.ds1.nacos.data-id=sentinel
spring.cloud.sentinel.datasource.ds1.nacos.group-id=DEFAULT_GROUP
spring.cloud.sentinel.datasource.ds1.nacos.data-type=json
spring.cloud.sentinel.datasource.ds1.nacos.namespace=trainID
# flow:流控規(guī)則,degrade:熔斷規(guī)則辆脸,param-flow:熱點(diǎn)規(guī)則唾那,system:系統(tǒng)規(guī)則刘离,authority:授權(quán)規(guī)則媳瞪。
spring.cloud.sentinel.datasource.ds1.nacos.rule-type=flow
1.流控規(guī)則
spring.cloud.sentinel.datasource.ds1.nacos.rule-type=flow
[
{
// 資源名
"resource": "/test1",
// 針對(duì)來源粘优,若為 default 則不區(qū)分調(diào)用來源
"limitApp": "default",
// 限流閾值類型(1:QPS;0:并發(fā)線程數(shù))
"grade": 1,
// 閾值
"count": 1,
// 是否是集群模式
"clusterMode": false,
// 流控效果(0:快速失敗;1:Warm Up(預(yù)熱模式);2:排隊(duì)等待)
"controlBehavior": 0,
// 流控模式(0:直接仇味;1:關(guān)聯(lián);2:鏈路)
"strategy": 0,
// 預(yù)熱時(shí)間(秒,預(yù)熱模式需要此參數(shù))
"warmUpPeriodSec": 10,
// 超時(shí)時(shí)間(排隊(duì)等待模式需要此參數(shù))
"maxQueueingTimeMs": 500,
// 關(guān)聯(lián)資源敬飒、入口資源(關(guān)聯(lián)邪铲、鏈路模式)
"refResource": "rrr"
}
]
2.熔斷規(guī)則
spring.cloud.sentinel.datasource.ds1.nacos.rule-type=degrade
[
{
// 資源名
"resource": "/test2",
"limitApp": "default",
// 熔斷策略(0:慢調(diào)用比例,1:異常比率无拗,2:異常計(jì)數(shù))
"grade": 0,
// 最大RT带到、比例閾值、異常數(shù)
"count": 200,
// 慢調(diào)用比例閾值,僅慢調(diào)用比例模式有效(1.8.0 引入)
"slowRatioThreshold": 0.2,
// 最小請(qǐng)求數(shù)
"minRequestAmount": 5,
// 當(dāng)單位統(tǒng)計(jì)時(shí)長(zhǎng)(類中默認(rèn)1000)
"statIntervalMs": 1000,
// 熔斷時(shí)長(zhǎng)
"timeWindow": 10
}
]
3.熱點(diǎn)規(guī)則
spring.cloud.sentinel.datasource.ds1.nacos.rule-type=param-flow
[
{
// 資源名
"resource": "/test3",
// 限流模式(QPS 模式揽惹,不可更改)
"grade": 1,
// 參數(shù)索引
"paramIdx": 0,
// 單機(jī)閾值
"count": 13,
// 統(tǒng)計(jì)窗口時(shí)長(zhǎng)
"durationInSec": 6,
// 是否集群 默認(rèn)false
"clusterMode": false,
"burstCount": 0,
// 集群模式配置
"clusterConfig": {
"fallbackToLocalWhenFail": true,
"flowId": 2,
"sampleCount": 10,
"thresholdType": 0,
"windowIntervalMs": 1000
},
// 流控效果(支持快速失敗和勻速排隊(duì)模式)
"controlBehavior": 0,
"limitApp": "default",
"maxQueueingTimeMs": 0,
// 高級(jí)選項(xiàng)
"paramFlowItemList": [
{
// 參數(shù)類型
"classType": "int",
// 限流閾值
"count": 222,
// 參數(shù)值
"object": "2"
}
]
}
]
4.系統(tǒng)規(guī)則
spring.cloud.sentinel.datasource.ds1.nacos.rule-type=system
[
{
// RT
"avgRt": 1,
// CPU 使用率
"highestCpuUsage": -1,
// LOAD
"highestSystemLoad": -1,
// 線程數(shù)
"maxThread": -1,
// 入口 QPS
"qps": -1
}
]
5.授權(quán)規(guī)則
spring.cloud.sentinel.datasource.ds1.nacos.rule-type=authority
[
{
// 資源名
"resource": "/test4",
// 流控應(yīng)用
"limitApp": "app1,app2",
// 授權(quán)類型(0代表白名單被饿;1代表黑名單。)
"strategy": 0
}
]