[
]
ZhouSa.com 并发控制
并发控制用于控制同一时刻最大处理请求的数目, gateway的并发有两种控制模式
- 通过网关内置并发插件控制并发(推荐)
- 通过配置网关线程池控制并发
线程池控制并发
connector及channel之间的线程交互模型采用reactor模型,最大的复用线程数并充分利用异步io的优势,减少系统线程压力,channel中的连接器connector用于接收请求,接收完成后需要交付给channel进行处理,同时释放connector线程用于继续接收其他请求,connector的socket的接入默认采用异步框架netty接入,如下图所示。
通过控制channel处理请求的线程池大小可控制并发度,并发控制相关配置项如下:
并发插件控制并发
- 使用并发插件控制并发, 优势在于, 并发插件的计数原则或者说计数区间是: 请求进入并发插件时, 该请求被计入并发数, 当网关接收到服务端对该请求的响应时, 该请求被从并发计数中移除.
- 这样的优势在于 如果服务端压力过大, 导致响应速度变慢, 访问速度大于响应速度, 会使并发计数增加, 当达到我们设置的并发计数的最大值时, 请求在gateway被拦截, 不会再由新的请求继续访问服务端.
- 相比之下线程池并发控制更关心gateway的处理能力, 不能妥善协调服务端的处理能力
#并发控制-机构 concurrent: name: '并发控制-机构维度' values: - {id: concurrent-1285-Z2003731000018, name: aaaaa, matcher: '${trxDirection}->IN && ${pathNo}->1285 && ${OriIssrId}->Z2003731000018', targetExpression: epcc, permits: 5, available: false} - {id: concurrent-1285-Z2004344000017, name: bbbbb, matcher: '${trxDirection}->IN && ${pathNo}->1285 && ${OriIssrId}->Z2004344000017', targetExpression: epcc, permits: 5, available: false} - {id: concurrent-1285-Z2004944000010, name: vvvvv, matcher: '${trxDirection}->IN && ${pathNo}->1285 && ${OriIssrId}->Z2004944000010', targetExpression: epcc, permits: 5, available: false} - {id: concurrent-1285-Z2013811000010, name: ddddd, matcher: '${trxDirection}->IN && ${pathNo}->1285 && ${OriIssrId}->Z2013811000010', targetExpression: epcc, permits: 5, available: false} - {id: concurrent-1285-Z2010743000012, name: eeeee, matcher: '${trxDirection}->IN && ${pathNo}->1285 && ${OriIssrId}->Z2010743000012', targetExpression: epcc, permits: 5, available: false} - {id: concurrent-1285-Z2014811000011, name: fffff, matcher: '${trxDirection}->IN && ${pathNo}->1285 && ${OriIssrId}->Z2014811000011', targetExpression: epcc, permits: 5, available: false} - {id: concurrent-1285-Z2012911000011, name: ggggg, matcher: '${trxDirection}->IN && ${pathNo}->1285 && ${OriIssrId}->Z2012911000011', targetExpression: epcc, permits: 5, available: false}
字段描述:
注意事项 |
---|
并发插件对于当一个并发计数器达到最大并发数后,当继续发请求时, 请求直接被即时拒绝, 直到并发计数由于得到服务端响应减少小于最大值时, 才允许请求通过 |
还没有评论,来说两句吧...