1

在我的项目中,通过在代码中编写关键部分来处理多个竞争条件场景,因为 Blazegraph 数据库没有可用的锁定机制。应用程序部署在 AWS Fargate(docker) 中。

缺点是由于代码中的同步块,我们无法在多个容器中扩展应用程序。

例子:

  1. 我有一个有多个修订的项目。一次只能有一个用户提交。提交是通过读取项目中的最新修订号来完成的。因此,获取最新版本号并提交新版本的代码位于同步块中。
  2. 项目中维护了一个对象计数器,以便为每个保存请求生成顺序 ID。因此,获取最新对象计数器和增量的代码位于同步块中

可能的选项:

  1. 维护队列 - 成本太高,因为所有请求都需要通过队列路由
  2. 将“uuid”保留为 id - 商业原因。无法改变

欢迎任何建议。非常感谢你。

4

0 回答 0