【问题标题】:AWS Kinesis Stream as FIFO queueAWS Kinesis Stream 作为 FIFO 队列
【发布时间】:2017-03-09 20:02:51
【问题描述】:

我们目前有一个接收大量传感器数据的应用程序。每个传感器都有自己唯一的传感器 ID(例如“5834f7718273f92cc326f620”)并以不同的时间间隔发出其状态。进来的消息的处理顺序并不重要,例如一个传感器的新消息可以在另一个传感器的旧消息之前处理。但重要的是,必须按顺序处理给定传感器的每条消息。按照他们到达溪流的顺序。

我查看了 Kinesis 客户端库并了解 KCL 将消息推送到每个分片的单个处理器。这是否意味着如果一个流只有一个分片,它将只有一个处理器,这不会造成瓶颈吗?或者 KCL 是否有多个处理器,并且不知何故,也许使用分区键可以确保永远不会同时处理具有相同分区键的消息?

注意:我们已经查看了 sqs fifo,但排除了它,因为每秒 300 条消息的限制很快就会成为问题。

【问题讨论】:

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


    【解决方案1】:

    是的,每个分片在给定时刻(每个应用程序)只能有一个处理器。

    但是,您可以使用传感器 ID 作为 kinesis put 记录请求的分区键。 (see here)

    这将确保所有这些传感器事件都进入同一个分片和处理器。 如果您这样做,您将能够扩展您的进程和分片,并且仍然在单个处理器中处理每个传感器事件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多