我们将开发springboot应用程序,该应用程序将部署在两个ECS容器上以支持群集环境。此应用程序将接受请求并将消息放入SQS。应用程序中的另一个流将从队列中选取消息并进行处理。由于同一个应用程序将在群集环境中的两个不同服务器上运行,我不确定哪个服务器将从队列中选取消息。我如何确保只有一个服务器从队列中选取消息。它可能是任何一个服务器。
gstyhher1#
普通的SQS队列甚至不能保证消息在队列中只出现一次-请参见AWS Standard SQS Queue docs使用一个合理的可见性超时值,消息不能被其他使用者看到的时间与使用消息所花费的时间应该可以解决这个问题。或者,您可以使用SQS FIFO队列,但它要慢得多,而且根据我的经验,可能会在损坏的消息上卡住。
1条答案
按热度按时间gstyhher1#
普通的SQS队列甚至不能保证消息在队列中只出现一次-请参见AWS Standard SQS Queue docs
使用一个合理的可见性超时值,消息不能被其他使用者看到的时间与使用消息所花费的时间应该可以解决这个问题。
或者,您可以使用SQS FIFO队列,但它要慢得多,而且根据我的经验,可能会在损坏的消息上卡住。