【发布时间】:2020-05-19 10:01:48
【问题描述】:
我有特定的代码需要确保不会为同一个用户同时执行(一个用例是用户试图同时从不同的机器下一个特定的订单)。
为了实现这一点,我尝试了线程同步,当代码部署在单个服务器上时,这几乎解决了问题。
但是,我有一个查询,如果在 AWS 上有多个 EC2 实例时执行相同的操作,我会遇到任何问题吗?
当请求通过负载均衡器传播到不同的 EC2 实例时,线程同步可能不起作用。
【问题讨论】:
-
你能把你的 FIFO SQS 队列用来存储作业任务吗?它保证 5 分钟窗口内的唯一性。这样,您的用户只需将任务提交到队列,而在队列的另一端,您有一个作业调度程序从队列中一个接一个地拾取作业。
标签: multithreading amazon-web-services amazon-ec2 thread-safety