Amazon-Kinesis:将记录放入每个碎片

时间:2016-01-19 17:44:12

标签: java sharding amazon-kinesis

我有一个Amazon Kinesis流,包含多个分片。碎片的数量,以及消费者的数量,不是一个常数。

有一种不常见的事件类型,我希望广播给流媒体上的每个消费者。

生产者是否有办法广播一条记录,即发现分片并将记录放在每一条记录上?

1 个答案:

答案 0 :(得分:0)

你可以这样做!有点......

使用参数“ExplicitHashKey”的技巧。

这使您可以设置用于记录的哈希键,因此可以选择数据的分片。

然后你可以打电话

aws kinesis describe-stream --stream-name name-of-your-stream

获取有关每个分片的信息,包括每个分片涵盖的哈希范围。

然后你只需要将数据发送到每个分片(使用PutRecord或PutRecords),你就可以了。

不幸的是,没有“广播”,但您可以轻松编写Lambda,使用ExplicitHashKey参数将相同的数据发送到每个分片。

另一个解决方案是使用单独的流并写出每个流。