跳到主要内容

AREX Agent 保护机制

为减少降低生产环境使用 AREX 录制数据的风险,Agent 提供了保护机制,主要是针对录制场景进行队列溢出的健康检测和服务是否可用的检测。

队列溢出的健康检测步骤

在大流量情况下或录制频率高时:

  1. 所有录制请求会先进入一个队列中,然后由一个异步消费者从队列中取出任务并进行处理(队列默认长度为 1024)。
  2. 每次录制前(进队列)会先判断队列是否已满,如果满了则立即停止录制。
  3. 30 秒后启动一个健康检测任务,先降频(基于当前录制频率降低 20%),重新打开录制。
  4. 5 分钟后检查队列是否已恢复,如果还未恢复则继续降频(基于当前录制频率降低 20%),直到降到最低频率(大概 1 小时录制一次)。
  5. 10 分钟后再检测一次,如果队列恢复可用则停止检测。

服务状态的健康检测步骤

检测调用 arex-storage 服务出现异常时:

  1. 如果 arex-storage 服务调用失败(包括网络异常)或 arex-storage 服务不可用,则立即停止录制。
  2. 10 秒后重新打开录制,采集服务健康指标(99% 的请求未出现超时,服务拒绝)。
  3. 3 分钟后根据服务健康指标检查队列是否已恢复,如果还未恢复则继续降频(基于当前录制频率降低 20%),直到降到最低频率(大概 1 小时录制一次),10 分钟后再检测一次。如果恢复则停止检测。