运动学数据流中的分片是什么

时间:2019-06-09 13:12:51

标签: amazon-web-services amazon-kinesis data-stream

运动学数据流和分区键中的分片是什么。我读过aws文档,但不明白。有人可以简单地解释一下吗?

1 个答案:

答案 0 :(得分:2)

来自Amazon Kinesis Data Streams Terminology and Concepts - Amazon Kinesis Data Streams

  

分片是流中唯一标识的数据记录序列。流由一个或多个分片组成,每个分片提供固定的容量单位。每个分片最多可以支持每秒5个事务的读取,最大每秒2 MB的最大总数据读取速率,每秒最多1,000条记录的最大总数据写入速率,每秒1 MB(包括分区键)。流的数据容量取决于您为流指定的分片数量。流的总容量是其分片容量的总和。

因此,分片有两个用途:

  • 一定的容量/吞吐量
  • 邮件的有序列表

如果您的应用程序必须按顺序处理所有条消息,那么您只能使用一个分片。可以把它想象成银行的一条线-如果有一条线,那么每个人都会得到有序的服务。

但是,如果只需要为消息的特定子网 订购消息,则可以将它们发送到单独的分片中。例如,银行中有多行,每行按顺序提供。或者,考虑发送GPS坐标的公交车。每条总线仅将消息发送到单个分片。一个分片可能包含来自多条总线的消息,但是每条总线仅发送给一个分片。这样,当处理来自该分片的消息时,将按顺序处理来自特定总线的所有消息。

这是通过使用分区键来控制的,该键标识了源。分区键被散列并分配给一个分片。因此,所有具有相同分区键的消息都将进入相同的分片。

在后端,每个分片通常有一个典型的工人,该工人正在按顺序处理来自该分片的消息。

如果您的系统不关心保留消息顺序,请使用随机分区键。这意味着消息将被发送到任何分片。