Microservices 我如何通过即时一致性跨微服务满足业务需求?

Microservices 我如何通过即时一致性跨微服务满足业务需求?,microservices,eventual-consistency,data-consistency,Microservices,Eventual Consistency,Data Consistency,让我们假设我在一个网店的管理面板的上下文中。我有一份订单单。这些订单已付款并准备装运。(管理员)用户希望根据订购的物品开始发货 假设有2个微服务。一个用于订单,一个用于装运。为了创建装运,我将向装运服务发送一个包含两个待装运项目和订单ID的请求。然后,装运服务将通过查询订单服务来检查订单中是否存在这些项目。因为我不想使用订单中不存在的项目创建装运 我希望具有即时一致性,因为在创建后,装运数据将发送到第三方应用程序。因此,如果数据不正确,允许创建装运也会让人感到奇怪 我也在使用GraphQL突变。

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

假设有2个微服务。一个用于订单,一个用于装运。为了创建装运,我将向装运服务发送一个包含两个待装运项目和订单ID的请求。然后,装运服务将通过查询订单服务来检查订单中是否存在这些项目。因为我不想使用订单中不存在的项目创建装运

我希望具有即时一致性,因为在创建后,装运数据将发送到第三方应用程序。因此,如果数据不正确,允许创建装运也会让人感到奇怪

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


对于这些情况,建议采用什么方法?这是否意味着这两个微服务需要合并?我可以想象这种情况会发生多次。

re:“我需要检查所提供的物品是否已实际订购。”。不清楚为什么在没有订单的情况下创建发货,你能详细说明一下吗?@Nir Alfasi是的,我会更新我的问题。如果订单中只有一些项目可以发货怎么办?