【问题标题】:How Kinesis guarantee the messages order while we increase the Shards in runtime?当我们在运行时增加分片时,Kinesis 如何保证消息的顺序?
【发布时间】:2021-01-14 05:33:01
【问题描述】:

我是 Kinesis 新手,当我阅读 Kinesis 文档时,我意识到使用相同分区键提供的消息将被映射到同一个 Shard 以保证顺序。这完全有道理。但是,我想知道如果我们在运行时增加主题分片的数量,具有相同分区键的新消息是否会像以前一样散列到相同的分片(旧的)?

如果是这样,如果所有消息都提供了分区键,那么它们都不会映射到新的 Shard 怎么办?这对我来说没有意义。

如果不是,那么 Kinesis 如何保证具有相同分区键的消息的顺序?

【问题讨论】:

    标签: sharding amazon-kinesis


    【解决方案1】:

    了解 Kinesis 在 resharding 时的作用很重要:

    有两种类型的重新分片操作:分片拆分和分片合并。在分片拆分中,您将单个分片分成两个分片。在分片合并中,您将两个分片组合成一个分片。重新分片始终是成对的,因为您不能在一次操作中拆分成两个以上的分片,并且您不能在一次操作中合并两个以上的分片。重新分片操作所作用的分片或分片对称为父分片。重新分片操作产生的分片或分片对称为子分片。

    当您增加运动流的大小时,您将split shards

    当您拆分分片时,您在此范围内指定一个值。该散列键值和所有更高的散列键值被分配到其中一个子分片。所有较低的哈希键值都分配到另一个子分片。

    实际上,AWS 只是保证分片级别的顺序,因此在拆分后,您需要从分片和消费者端读取顺序,请参阅here

    【讨论】:

      猜你喜欢
      • 2021-01-13
      • 2023-04-07
      • 2020-03-04
      • 2017-07-24
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      相关资源
      最近更新 更多