我使用带有多个分片的 AWS Kinesis 流。当我将记录放入流中时,我设置的分区键不是恒定的,以将记录映射到每个分片。
为了确保每个分片都被使用,我如何监控分片的事件?
我看到在AWS Cloudwatch的增强级别中,Kinesis的指标可以按分片进行拆分。这不是我的情况,而且由于我的需要只是偶尔,所以我不想为此付费。
最佳答案
- 您可以根据需要启用分片级别指标,然后在不需要时禁用。尽管您明确表示不需要此解决方案,但这是迄今为止最好的方法。
- 在消费者方面,您可以使用自定义日志记录。对于 IRecordProcessor 实现中处理的每个记录批处理,您可以计算每个分片的传入数据计数。 Sample code here 。您甚至可以添加第 3 方指标平台(例如 Prometheus)。
- 您可以自定义生成器并记录
PutRecordResponse
。对于每个 Put 调用,它都会返回“您的数据放置在 XXX 分片下”。 See AWS Documentation for details .
通常,如果您遇到分片之间数据分布不均匀的问题,最好的方法是在 Kinesis Producer 应用程序中发送数据时使用随机分区键。
关于amazon-cloudwatch - 如何了解每个 Kinesis 分片的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42759174/