首页 > 解决方案 > 我如何通过即时一致性满足跨微服务的业务需求?

问题描述

假设我在网上商店的管理面板的上下文中。我有一份订单清单。这些订单已付款并准备发货。(管理员)用户想根据订购的物品开始发货。

想象一下有 2 个微服务。一份用于订单,一份用于发货。为了创建发货,我将向发货服务发送包含几件要发货的物品和订单 ID 的请求。然后,发货服务将通过查询订单服务来检查订单中是否存在商品。因为我不想使用订单中不存在的物品创建货件。

我希望立即保持一致性,因为发货数据将在创建后发送到第三方应用程序。因此,如果数据不正确,允许创建发货也感觉很奇怪。

我也在使用 GraphQL 突变。这意味着我必须将更新后的状态返回给用户,这也使得最终的一致性变得更加困难。

对于这些情况,推荐的方法是什么?这是否表明这两个微服务需要合并?我可以想象这种情况可能会发生多次。

标签: microserviceseventual-consistencydata-consistency

解决方案


推荐阅读