【问题标题】:How to maitain thread synchronization with multiple AWS EC2 instances如何保持与多个 AWS EC2 实例的线程同步
【发布时间】:2020-05-19 10:01:48
【问题描述】:

我有特定的代码需要确保不会为同一个用户同时执行(一个用例是用户试图同时从不同的机器下一个特定的订单)。

为了实现这一点,我尝试了线程同步,当代码部署在单个服务器上时,这几乎解决了问题。

但是,我有一个查询,如果在 AWS 上有多个 EC2 实例时执行相同的操作,我会遇到任何问题吗?

当请求通过负载均衡器传播到不同的 EC2 实例时,线程同步可能不起作用。

【问题讨论】:

  • 你能把你的 FIFO SQS 队列用来存储作业任务吗?它保证 5 分钟窗口内的唯一性。这样,您的用户只需将任务提交到队列,而在队列的另一端,您有一个作业调度程序从队列中一个接一个地拾取作业。

标签: multithreading amazon-web-services amazon-ec2 thread-safety


【解决方案1】:

我之前曾看到人们使用 DynamoDB 表来存储各个工作节点之间的状态。

如果您采用这种方法,请务必使用strongly consistent reads

【讨论】:

  • 但是我们如何管理来自不同 EC2 实例的竞速条件?
猜你喜欢
  • 2020-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-18
  • 1970-01-01
  • 2019-04-16
  • 2022-11-14
相关资源
最近更新 更多