【发布时间】:2019-12-02 09:01:58
【问题描述】:
我用 Java 编写所有微服务。我想在 Amazon SQS 中使用多个消费者,但每个消费者在 AWS 上的负载均衡器后面都有多个实例。
我使用 SNS 作为输入流
我在 SNS 之后使用 SQS 标准队列。
我在 stackoverflow (Using Amazon SQS with multiple consumers) 上发现了同样的问题
这个样本是
https://aws.amazon.com/fr/blogs/aws/queues-and-notifications-now-best-friends/
当我阅读 SQS 标准队列文档时,我发现有时会传递多个消息副本。:
每条消息都有一个message_id。如何检测不存在同一个微服务的多个实例处理相同的消息,该消息将被多次发送。我通过在 dynamodb 数据库中注册 message_id 得到了一个想法,但如果这是由同一个微服务的多个实例完成的,如何对 get 进行锁定(有点像 SELECT FOR UPDATE)?
例如同一微服务“扫描元数据”的多个实例。
【问题讨论】:
标签: java amazon-web-services amazon-sqs amazon-sns