亚马逊Kinesis并保证订购

时间:2016-08-31 10:08:52

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

亚马逊声称他们的Kinesis流媒体产品保证了唱片订购。

  

它提供记录的排序,以及以相同的顺序读取和/或重放记录的能力(...)

Kinesis由Streams组成,Streams本身由一个或多个Shards组成。记录存储在这些碎片中。我们可以编写连接到碎片的消费者应用程序,并按照它们存储的顺序读取/重放记录。

但Kinesis能否开箱即用,为Stream本身订购,而无需向消费者推销订购逻辑?消费者如何从同一个Stream的多个Shards中读取记录,确保记录的读取顺序与它们添加到Stream中的顺序相同?

3 个答案:

答案 0 :(得分:8)

这似乎无法实现。在分片级别上保证排序,但不在整个流级别上进行排序。

https://brandur.org/kinesis-order

  

回到我们原来的问题:我们怎样才能保证所有   记录的生成顺序与它们的生成顺序相同?该   答案是我们不能,但我们不应该让那个不幸   现实困扰我们太多了。一旦我们将我们的流扩展到多个   碎片,没有我们可以用来保证记录的机制   在整个流中按顺序消耗;只在一个单一的   碎片。

答案 1 :(得分:1)

如果需要保证流中所有数据的顺序,则只能有一个分片。当然,这样做的伸缩性不是很好。您需要确定的是您是否真的需要该级别的有序数据。流中的所有数据是否与所有其他数据相关?关键是在关联数据时将数据放入分片中。使用多个分片可以并行处理您的数据。如果所有相关数据都放在一个分片中,则可以利用保证的顺序。如果您确实需要对所有数据进行排序,则只需要处理随之而来的有限缩放。

答案 2 :(得分:-2)

enter image description here

对此不确定。

但是我想他们是说在多个分片之间可以排序。

我希望数据流意味着对碎片进行逻辑分组。 因此,如果这是真的,那么我想排序是可能的。

请检查并确认