首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >同一微服务的多个实例不应获取和更新相同的MongoDB文档

同一微服务的多个实例不应获取和更新相同的MongoDB文档
EN

Stack Overflow用户
提问于 2020-02-20 06:36:01
回答 1查看 294关注 0票数 0

问题陈述:

我们的微服务中有一个Scheduler,它将获取10个请求文档(有staus "A")并开始对它们进行处理,并在此之后更新每个文档的状态。

我们计划部署同一个微服务的三个实例。一旦所有三个实例都开始执行调度程序,那么每个实例将获取10个请求文档并开始处理它们。

相同的请求文档不应该在多个实例中被获取和处理。如何确保每个微服务实例选择10个不同的文档?

EN

回答 1

Stack Overflow用户

发布于 2020-02-20 09:13:26

每个员工都应该选择一组不同的文档。

例如,如果文档具有自动增量数字id:

  • Worker 1可以获得ID %3= 0
  • Worker 2可以获得ID %3= 1
  • Worker 3可以获得ID %3= 2

的所有文档的所有文档

如果自动增量ID不可用,您可以查看一致的散列,这是非常好的学习。

散列很简单:

  1. 计算文档ID
  2. 的散列,使用此散列获取哪个工作人员应该处理该文档

这种方法的问题是,假设您的文档ID哈希的范围在1到1000之间,并且您使用的方法是相同的。你可能最终得到的工人1比工人2更多的工作。

使用一致的散列,您可以扩大范围以获得更大的平衡。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60314142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档