使用哪个 aws 消息传递服务
Which aws messaging service to use
我正在处理一个需要处理消息的项目。现在,每条消息都与具有唯一 consumerId 的消费者相关联。我的要求是我希望一个唯一的 consumerId 的所有消息都被一个接一个地处理。即只有一个消费者应该处理给定 consumerId 的消息。
aws 是否提供任何满足我条件的消息服务?
这听起来像是 Amazon Kinesis Data Stream 的一个很好的使用模式。
一个 Kinesis 数据流可以分配多个 分片 。将每个分片视为一个单独的消息队列,其中每条消息按接收顺序保存。
将消息发送到 Kinesis Data Stream 时,您提供一个 分区键,该键经过哈希处理,然后用于确定将消息发送到哪个分片。如果您只有一个分片,所有消息都会进入该分片。如果您有 10 个分片,那么消息最多会分配到 10 个队列,只要您的分区键足够多样化即可。
然后可以使用 您自己的工作人员(例如 运行 在 Amazon EC2 实例上)使用消息,或者流可以自动触发 AWS Lambda函数.
这里是相关位的来源...您的工作人员(或 Lambda 函数)将 一次处理来自给定分片 的一条消息。只有当该消息已被处理后,它才会从同一个分片中提取另一条消息。这意味着来自相同 consumerId
(如分区键所示)的消息将始终按照它们到达的顺序进行处理。
可以把它想象成人们被分配到银行队列,其中队列是按名称(A-K,L-Z)分配的。使用此方法总是会把一个人送到同一个队列,每个队列只会由一个银行柜员处理。
我正在处理一个需要处理消息的项目。现在,每条消息都与具有唯一 consumerId 的消费者相关联。我的要求是我希望一个唯一的 consumerId 的所有消息都被一个接一个地处理。即只有一个消费者应该处理给定 consumerId 的消息。
aws 是否提供任何满足我条件的消息服务?
这听起来像是 Amazon Kinesis Data Stream 的一个很好的使用模式。
一个 Kinesis 数据流可以分配多个 分片 。将每个分片视为一个单独的消息队列,其中每条消息按接收顺序保存。
将消息发送到 Kinesis Data Stream 时,您提供一个 分区键,该键经过哈希处理,然后用于确定将消息发送到哪个分片。如果您只有一个分片,所有消息都会进入该分片。如果您有 10 个分片,那么消息最多会分配到 10 个队列,只要您的分区键足够多样化即可。
然后可以使用 您自己的工作人员(例如 运行 在 Amazon EC2 实例上)使用消息,或者流可以自动触发 AWS Lambda函数.
这里是相关位的来源...您的工作人员(或 Lambda 函数)将 一次处理来自给定分片 的一条消息。只有当该消息已被处理后,它才会从同一个分片中提取另一条消息。这意味着来自相同 consumerId
(如分区键所示)的消息将始终按照它们到达的顺序进行处理。
可以把它想象成人们被分配到银行队列,其中队列是按名称(A-K,L-Z)分配的。使用此方法总是会把一个人送到同一个队列,每个队列只会由一个银行柜员处理。