一、Max Bin Age 填写规则(按提示框说明)
格式要求:数字 + 空格 + 时间单位
支持单位:seconds / minutes / hours
不支持 EL 表达式,只能写固定时长。
示例写法(直接复制可用)
-
15秒兜底(实时数据流推荐,解决快慢流卡住)
15 seconds
-
30秒(普通混合流)
30 seconds
-
2分钟(离线批量、容忍延迟高)
2 minutes
二、结合你当前配置的完整修复方案
从截图看出2个致命卡点:
- Max Bin Age 为空:没有超时兜底,慢流跟不上时Bin永久持有快流数据,队列无限堆积卡死;
- Merge Strategy =
Defragment(分片重组模式):
Defragment 会强制等待完整分片集合,如果一条流慢、分片迟迟不到,Bin会一直锁死FlowFile,是你快慢流卡死的核心诱因。
推荐改法(分两种业务场景)
场景1:你不需要分片拼接(绝大多数合并场景,优先选)
- Merge Strategy 改为:
Bin Packing Algorithm - Max Bin Age 填入:
15 seconds - Minimum Number of Entries 保持 1
- 效果:只要有数据立刻输出;最多等15秒强制合并释放Bin,快慢流速差不会卡死。
场景2:你必须用 Defragment 分片重组(上下游是Split拆分的分片文件)
- Max Bin Age 必须填写
20 seconds - 同时优化上下游:
- 慢流链路加并发、去掉阻塞逻辑;
- 前置队列关闭负载均衡(集群环境);
- 用 ControlRate 组件限制快流速率,缩小两条流速度差距。
三、填写操作步骤
- 双击
Max Bin Age输入框; - 输入
15 seconds; - 点击确认保存组件配置;
- 重启 MergeContent 处理器生效。
补充说明
- 不能只写数字,必须带单位,只填
15会直接报错; - 单位全英文小写:seconds(秒)、minutes(分)、hours(小时);
- 有快慢两条流速差大时,不要超过30 seconds,否则内存堆积严重。