【发布时间】:2018-07-28 00:45:23
【问题描述】:
假设有两个微服务:订单和库存。有一个 API in order 服务接受 ProductId、Qty 等并下订单。
理想情况下,仅当库存服务中存在库存时才允许下订单。人们建议使用 Saga 模式或任何其他分布式事务。这很好,最终会利用一致性。
但是如果有人想滥用系统怎么办。他可以推送无效或缺货的产品 (ProductIds) 的订单。系统将接收所有这些订单并将这些订单放入队列中,库存服务将处理这些无效订单。
难道不应该提前处理(在订单服务中)而不是将这些无效订单推到下一个级别(特别是在 productId 无效的情况下)
处理这些情况的建议是什么?
【问题讨论】:
-
是否存在
Orders必须继续工作的业务要求,即使Inventory已关闭,如果是,在减少或延迟服务方面可接受的权衡是什么?
标签: domain-driven-design microservices