概述
版本
报表服务器版本 | 功能变更 |
---|---|
11.0 | - |
11.0.32 | 触发逻辑和提示优化 |
11.0.34 | 新增配置项「报表限流阈值」 http线程阻塞功能逻辑优化 |
11.5.3 | 新增配置库线程熔断功能 |
11.5.4 | 新增配置库、文件服务、状态服务等组件线程限流功能 |
功能简介
在用户访问工程资源时,可能会出现线程阻塞等问题,而这些问题往往会导致工程宕机。
帆软提供「资源调度熔断」功能,对线程阻塞问题提供兜底容错策略,降低宕机风险。
解决http线程阻塞
应用场景:对于 http 线程池中的 FineReport 报表类线程任务,在不同的线程负载状态下根据超时和线程阻塞状况,进行相关的线程中断,终止任务,避免 http 线程被占满而宕机。
版本要求:11.0.34 及之后版本 FineReport 支持
如何启用功能
1)管理员登录帆软应用,点击「管理系统>系统管理>常规」
2)在「防宕机专项配置」中,开启「线程熔断」开关,配置「报表限流阈值」,保存即可。
「线程熔断」为总开关,未开启时「报表限流阈值」配置无效
「报表限流阈值」支持用户自定义设置,默认值为 0.5(即 50%),有效设置范围为 0 到 1之间的小数
功能生效场景
场景 | 功能说明 |
---|---|
多阻塞线程熔断 | 执行时机:每次提交报表业务时触发检查 判断条件:检查是否存在一个线程阻塞了超过 5个其他线程的情况 执行动作:当满足条件时,系统会立即中断该阻塞线程 |
超时线程熔断 | 执行时机:每处理 40 个请求时触发检查
执行动作:当满足条件时,系统会中断对应的超时线程 |
线程池扩容 | 执行时机:每次提交报表业务时触发检查 执行动作:
|
报表线程限流 | 执行时机:每次提交报表业务时触发检查 判断条件:同时满足以下条件:
执行动作:系统将对报表业务线程进行限流处理 |
解决数据连接取数阻塞
应用场景:针对取数链路中的高风险场景,如数据连接异常、连接阻塞、系统线程资源紧张,自动监控识别风险,并在取数阻塞后进行报错提醒、资源释放,保护系统
版本要求:11.5.4 及之后版本 FineReport 支持
如何启用功能
1)管理员登录帆软应用,点击「管理系统>系统管理>常规」
2)在「防宕机专项配置」中,开启「线程熔断」开关,保存即可。
功能生效场景
场景 | 功能说明 |
---|---|
取数限流 | 执行时机:创建连接时触发检查 判断条件:同时满足以下条件:
执行动作:
|
取数熔断 | 执行时机:创建连接时触发检查 判断条件:同时满足以下条件:
执行动作:
|
数据连接告警 | 执行时机:创建连接时触发检查 判断条件:
执行动作:
|
解决项目组件阻塞
应用场景:统计配置库、状态服务、文件服务等项目组件的线程数量,在系统线程高负载后进行新请求的快速失败报错,提示用户排查组件问题
如何启用功能
1)管理员登录帆软应用,点击「管理系统>系统管理>常规」
2)在「防宕机专项配置」中,开启「线程熔断」开关,保存即可。
功能生效场景
场景 | 功能说明 |
---|---|
配置库线程熔断 | 11.5.3 及之后版本 FineReport 支持 判断条件:同时满足以下条件:
执行动作: 中断耗时超过1分钟、且状态为TIME_WAITING的线程 提示:当前系统线程压力过大,本次请求因为获取配置库数据连接耗时过长,已被线程熔断中断 |
配置库线程限流 | 11.5.4 及之后版本 FineReport 支持 判断条件:同时满足以下条件:
执行动作: 对还未执行的配置库http请求进行报错返回 提示「当前系统线程压力过大,本次请求无法正常执行,请联系管理员检查配置数据库后重试」 |
状态服务组件限流 | 11.5.4 及之后版本 FineReport 支持 判断条件:同时满足以下条件:
执行动作: 对还未执行的状态服务http请求进行报错返回 提示「当前系统线程压力过大,本次请求无法正常执行,请联系管理员检查状态服务器后重试」 |
文件服务组件限流 | 11.5.4 及之后版本 FineReport 支持 判断条件:同时满足以下条件:
执行动作: 对还未执行的文件服务http请求进行报错返回 提示「当前系统线程压力过大,本次请求无法正常执行,请联系管理员检查文件服务器后重试」 |
历史版本说明
开启功能
如需启用「资源调度熔断」功能,11.0.33 及以下版本的FineReport开启步骤不同,请根据自身情况选择对应开启步骤。
FineReport版本 | 开启步骤 |
---|---|
11.0.29及以下版本 | 需要安装V1.4.3及以上版本的资源调度熔断插件来启用「资源调度熔断」功能 点击下载插件:资源调度熔断插件 设计器插件安装方法参照:设计器插件管理 服务器安装插件方法参照:服务器插件管理 注:如使用V1.4.2及以下版本的资源调度熔断插件,可能在使用过程中出现报错,请务必升级。 |
11.0.30~11.0.33版本 | 1)管理员登录帆软应用,点击「管理系统>系统管理>常规」 2)在「防宕机专项配置」中,开启「线程熔断」开关即可 注:FineReport从11.0.29及以下版本升级到11.0.30及以上版本后,资源调度熔断插件会自动禁用,「线程熔断」开关默认关闭,请手动开启「线程熔断」开关。 |
功能作用
功能开启后,以下情况自动生效。
1)使用异步线程池取代原本的http线程池。
2)CPU负载超过80%或Report线程池线程使用超过85%时,认定为线程高负载
线程高负载时,每15秒会触发一次线程阻塞死锁和长执行线程检测
如果有3个以上线程阻塞在同一个session则会触发session关闭
如果有线程死锁则直接中断死锁的线程,如果存在长执行线程则触发关闭
线程被中止后,提示「当前系统内存压力过大触发系统防宕机保护,已中止模板计算,请稍后重试」