【问题标题】:scaled microservices instances needs to update 1扩展的微服务实例需要更新 1
【发布时间】:2020-12-09 07:27:58
【问题描述】:

我有一个独特的问题,试图看看什么是最好的实现。

  • 我的表格有 50 万行。每行代表 我需要从中获取有关该实体的信息的业务实体 互联网并异步更新回表 . (此过程大约需要 2 到 3 分钟)。
  • 我无法使用 1 个实例有效地更新所有这些行 微服务。因此计划将其扩展到多个实例
  • 我的微服务实例是异步守护进程,每次获取业务实体 1 并处理数据并最终将数据更新回表。 .这是我在多个实例之间的问题我如何确保没有 2 个微服务实例在更新过程中与相同的业务实体(同一行)一起工作?我想实现一个最佳解决方案微服务,可能无需在应用层维护任何状态。

【问题讨论】:

    标签: spring-boot microservices


    【解决方案1】:

    您必须使用外部系统(数据库/缓存)来保存有关每个实例的信息。

    例如:Shedlock。在数据库中创建一个表或文档,用于存储有关当前锁的信息。

    【讨论】:

      【解决方案2】:

      我建议您使用工作队列。这看起来非常适合您的问题。只需将整个数据或数据的 id 加载到队列中一次。然后让消费者消费。 你可以在这里看到一个清晰的解释 https://www.rabbitmq.com/tutorials/tutorial-two-python.html

      【讨论】:

      • 感谢您的回复这可能会导致多个消费者处理同一条消息将导致重复处理。 Thirumal 建议的棚屋将接近我正在寻找的东西.. 任何其他想法建议总是受欢迎的。
      • 此设置不会导致任何重复处理。当消费者从队列中选择任务时,每个人都将处理单独的任务。
      猜你喜欢
      • 2016-10-23
      • 2020-02-22
      • 2021-07-10
      • 2021-09-09
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      • 2016-07-08
      • 1970-01-01
      相关资源
      最近更新 更多