繁体   English   中英

kinesis 数据流中的分片是什么

[英]What is shards in kinesis data stream

kinesis 数据流和分区键中的分片是什么。 我阅读了 aws 文档,但我不明白。 有人可以用简单的术语解释一下吗?

来自Amazon Kinesis Data Streams 术语和概念 - Amazon Kinesis Data Streams

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

因此,分片有两个目的:

  • 一定的容量/吞吐量
  • 消息的有序列表

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

但是,如果消息只需要为某个消息子集排序,则可以将它们发送到单独的分片。 例如,银行中的多条线路,每条线路都按顺序提供。 或者,想想公共汽车发送 GPS 坐标。 每条总线只向一个分片发送消息。 一个分片可能包含来自多个总线的消息,但每个总线只发送到一个分片 这样,当处理来自该分片的消息时,来自特定总线的所有消息都会按顺序处理。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM