📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项作用 #

transform.circuit_breaker.enabled 配置项用于控制是否启用 Transform 任务的断路器机制

当启用时,Transform 任务会在 JVM 内存使用率超过阈值时暂停执行,防止内存溢出。

配置项属性 #

  • 配置路径: transform.circuit_breaker.enabled
  • 数据类型: Boolean(布尔值)
  • 默认值: true
  • 是否可选: 是
  • 作用域: NodeScope(节点级别)
  • 动态更新: 是(可以动态更新,无需重启)

配置项详解 #

工作机制 #

断路器保护机制

启用 (true):
Transform 任务执行前
    │
    ├── 检查 JVM 内存使用率
    ├── 是否超过 threshold?
    │   ├── 是 → 阻止执行 ✅
    │   │   ├── 等待内存释放
    │   │   └── 定期重试
    │   └── 否 → 允许执行 ✅
    └── 完成


禁用 (false):
Transform 任务执行前
    │
    ├── 跳过内存检查
    └── 直接执行 ⚠️

内存保护 #

断路器保护原理

保护阶段:
├── 验证阶段
│   ├── 检查内存使用
│   ├── 决定是否阻止
│   └── 保护系统
│
├── 执行阶段
│   ├── 执行 Transform
│   ├── 处理数据
│   └── 写入目标索引
│
└── 完成阶段
    ├── 清理资源
    ├── 更新状态
    └── 通知结果


保护触发:
JVM 内存使用率 > threshold (85%)
    │
    ├── 阻止新的 Transform
    ├── 允许正在运行的完成
    ├── 等待内存释放
    └── 定期检查恢复


保护效果:
├── 防止 OOM ✅
├── 保护集群稳定性 ✅
├── 优雅降级 ✅
└── 自动恢复 ✅

配置建议 #

默认配置(推荐) #

transform:
  circuit_breaker:
    enabled: true  # 默认值

建议: 生产环境必须启用,防止内存溢出。

内存受限环境 #

transform:
  circuit_breaker:
    enabled: true
    jvm:
      threshold: 75  # 降低阈值

动态更新 #

PUT /_cluster/settings
{
  "transient": {
    "transform.circuit_breaker.enabled": false
  }
}

相关配置 #

配置项作用默认值
circuit_breaker.enabled断路器开关true
circuit_breaker.jvm.threshold内存阈值85

注意事项 #

  1. 默认值: 默认值为 true,推荐保持。

  2. 动态更新: 支持动态更新。

  3. 内存保护: 防止 Transform 导致 OOM。

  4. 合理配置: 根据集群内存大小调整阈值。

  5. 监控建议: 监控 JVM 内存使用率。