我想解决 Amazon Data Firehose 传输流的节流问题,节流发生在传入流量处于配额以内的情况下。
解决方法
如果 Firehose 传输流的数据摄取速度超过吞吐能力配额,则会出现节流情况。如果流的数据摄取速度看似在 Firehose 配额之内,但您仍然遇到了节流情况,那么流可能有隐藏的微爆情况。
出现微爆节流的情况是因为突然的大容量数据峰值在短时间内超过了流的吞吐能力。例如,如果您使用 PutRecord 或 PutRecordBatch API 操作,则您的数据创建器可能会突然发送超过流的每秒吞吐量配额的数据。
虽然 Firehose 每分钟才发布一次 Amazon CloudWatch 指标,但是 Firehose 每秒钟都会定义吞吐能力配额。因此,如果传入数据爆发仅持续几秒钟,则 IncomingRecords、IncomingBytes 和 IncomingPutRequest CloudWatch 指标无法捕获传入数据爆发。但是,ThrottledRecords 指标会显示为 Throttling。
要解决 Firehose 传输流中的微爆节流问题,请采取以下一项或多项操作:
- 在创建器逻辑中使用指数回退和重试行为。
- 检查您的创建器发送的记录的大小和数量。如果传入记录和节流记录的总和大于流配额,则要更改记录的大小或数量。
- 为 IncomingBytes、IncomingRecords、IncomingPutRequests 和 ThrottledRecords 指标创建 CloudWatch 警报。
- 联系 AWS Support,请求增加吞吐量配额。
**注意:**Firehose 会自动增加因数据摄取量增加而受到节流的 Direct PUT 流的吞吐量配额,直到节流停止为止。