基于分片的 AWS Kinesis 批处理

问题描述

我计划将两种类型的事件放入 kinesis。事件 A 的频率很高,所以我需要批量大小为 100,maxRecordAge 为 1 分钟。 事件 B 较少发生,我希望将批量大小保持为 1,因为我想尽快处理事件。 我计划将这两个事件保持在相同的运动中,但在不同的分片上。有没有办法根据分片配置批量大小? 我正在使用 Kinesis lambda 触发器来触发 lambda。

解决方法

不,无法定义每个分片的批量大小。 Batchsize 配置是在流级别定义的。

处理这种情况有两种可能性:

  1. 或者你有两个 lambda 函数作为消费者,每个都有不同的批量大小,并且根据消息键,你可以过滤消息中的高频/低频数据

  2. 将数据拆分为两个单独的流,并向每个流添加一个 lambda 使用者。