AWS ESM中MaximumBatchingWindowInSeconds与TumblingWindowInSeconds的区别
Lambda ESM 两个时间配置的核心区别
针对对接DDB Stream的场景,MaximumBatchingWindowInSeconds和TumblingWindowInSeconds是作用于完全不同阶段的独立配置,核心差异如下:
MaximumBatchingWindowInSeconds:函数调用前的攒批窗口
该配置控制Lambda触发函数执行前的等待时长,本质是调优调用频率的参数:Lambda会同时监听「已收集记录数是否达到设置的BatchSize」和「攒批时间是否达到配置值」两个条件,任意一个满足就会立即调用函数处理当前攒好的批次。
如果你只是希望减少Lambda调用次数、降低冷启动概率和使用成本,只需要调整这个配置即可,它和你的业务处理逻辑没有直接关联。
TumblingWindowInSeconds:函数执行时的有状态处理窗口
该配置仅用于有状态聚合的业务场景,本质是给连续多次的函数调用提供可共享的状态缓存周期:在你配置的窗口时长内,前一次函数调用返回的状态值会自动传递给下一次调用,直到窗口到期后状态自动清空重置。
只有当你需要统计一段连续时间内的DDB Stream变更数据(比如每分钟统计新增记录数、特定字段的变更次数)时才需要配置这个参数,无状态处理的场景不需要用到它。
两个配置可以同时生效互不干扰,例如配置MaximumBatchingWindowInSeconds=10、TumblingWindowInSeconds=300的效果为:每10秒攒够一批数据触发一次Lambda调用,连续5分钟内的所有调用都可以共享传递状态,5分钟窗口结束后状态重置。
内容的提问来源于stack exchange,提问作者micah
相关产品推荐
相关产品推荐

