配置项作用 #
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 |
注意事项 #
默认值: 默认值为
true,推荐保持。动态更新: 支持动态更新。
内存保护: 防止 Transform 导致 OOM。
合理配置: 根据集群内存大小调整阈值。
监控建议: 监控 JVM 内存使用率。





