专用队列、分布式锁和高可用服务

问题描述 投票:0回答:1

我需要一些有关软件/服务/架构“设计”的建议。以下是状态和要求(考虑项目 A):

  • 商品 A 的价格、库存等事件可以由多个“生产者”服务生成
  • 项目 A 的事件必须仅由一个“消费者”服务实例处理(以避免冲突)。消费者将能够处理 N 个不同的物品

我的想法:

  • 让生产者服务添加/排队事件以专用队列(每个项目 1 个队列)+发布项目的事件可用
  • 让消费者服务“锁定”它正在处理的目标 Item(通过分布式锁)并处理专用队列。

这是一个可行的解决方案吗?知道我需要良好的吞吐量和高可用性吗?

感谢您的帮助。

architecture queue high-availability
1个回答
0
投票

考虑基于“持久执行”的解决方案,例如temporal.io。您为每个业务实体创建一个执行,并通过业务 ID 直接向其发送事件。然后每个实体都可以执行所需的任何处理。所有路由、分区和锁定均由开箱即用的底层系统处理。

© www.soinside.com 2019 - 2024. All rights reserved.