本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
确定重新分片策略
在 Amazon Kinesis Data Streams 中重新分片的目的是,使流能够适应数据流的速率的变化。拆分分片将增加流的容量(和费用)。合并分片将减少流的费用(和容量)。
一种重新分片的方式可能是拆分流中的每个分片,这将使流的容量增加一倍。但是,这提供的容量可能比您实际需要的要多,从而产生不必要的费用。
您还可使用指标确定您的热或冷分片(即,接收的数据多于预期或少于预期的分片)。之后您可选择性地拆分热分片以增加面向这些分片的哈希键的容量。同样,您可合并冷分片以更好地利用其未使用的容量。
您可从 Kinesis Data Streams 发布的 Amazon CloudWatch 指标中获取流的部分性能数据。但是,您也可收集您自己的一些关于流的指标。一种方式是记录由您的数据记录的分区键生成的哈希键值。记住,您在向流添加记录时指定了分区键。
putRecordRequest.setPartitionKey( String.format( "myPartitionKey" ) );
Kinesis Data Streams 使用 MD5
您还可记录您的数据记录分配到的分片的 ID。分片 ID 是通过使用 getShardId
对象(由 putRecordResults
方法返回)和对 putRecords
对象(由 putRecordResult
方法返回)的 putRecord
方法提供的。
String shardId = putRecordResult.getShardId();
利用分片 ID 和哈希键值,您可确定将接收最多流量或最少流量的分片和哈希键。您之后可使用重新分片操作来增加或减少容量(视这些键的情况而定)。