什么是Kinesis数据流中的分片(shards)和分区键(partition key)?我阅读了AWS文档,但是还是不太理解。能否用简单易懂的语言解释一下?
什么是Kinesis数据流中的分片(shards)和分区键(partition key)?我阅读了AWS文档,但是还是不太理解。能否用简单易懂的语言解释一下?
来自Amazon Kinesis数据流术语和概念 - Amazon Kinesis数据流:
分片是流中一系列唯一标识的数据记录。一个流由一个或多个分片组成,每个分片提供固定单位的容量。每个分片最多支持每秒5次读取事务,最大总数据读取速率为每秒2 MB,并且每秒最多支持1,000条写入记录,最大总数据写入速率为每秒1 MB(包括分区键)。您的流的数据容量是你为流指定的分片数量的函数。流的总容量是其分片容量的总和。
因此,一个分片有两个目的:
如果应用程序必须按顺序处理所有消息,则只能使用一个分片。可以将其视为银行的队列-如果只有一个队列,则每个人都按顺序服务。
然而,如果消息只需要为某个消息的子集排序,它们可以发送到单独的分片。例如,在银行中的多条线路,其中每条线路按顺序提供服务。或者,想象一下公交车发送GPS坐标。每辆公交车只向一个分片发送消息。一个分片可能包含来自多辆公交车的消息,但每辆公交车只发送到一个分片。这样,当处理来自该分片的消息时,所有特定公交车的消息都会被按顺序处理。
GetRecords
是一个读取事务,可以获取10k条记录,并且允许每秒5个这样的读取事务。https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html - Paras Diwan