microservices - 我如何通过即时一致性满足跨微服务的业务需求?
问题描述
假设我在网上商店的管理面板的上下文中。我有一份订单清单。这些订单已付款并准备发货。(管理员)用户想根据订购的物品开始发货。
想象一下有 2 个微服务。一份用于订单,一份用于发货。为了创建发货,我将向发货服务发送包含几件要发货的物品和订单 ID 的请求。然后,发货服务将通过查询订单服务来检查订单中是否存在商品。因为我不想使用订单中不存在的物品创建货件。
我希望立即保持一致性,因为发货数据将在创建后发送到第三方应用程序。因此,如果数据不正确,允许创建发货也感觉很奇怪。
我也在使用 GraphQL 突变。这意味着我必须将更新后的状态返回给用户,这也使得最终的一致性变得更加困难。
对于这些情况,推荐的方法是什么?这是否表明这两个微服务需要合并?我可以想象这种情况可能会发生多次。
解决方案
推荐阅读
- javascript - 如何使用日期选择器仅查看当前月份的某一天?
- react-native - 如何使用 React Native expo-cli 将贴纸分享到 whatsapp
- ms-access - 访问发送带附件的电子邮件
- python - 有谁知道我如何在pygame中让我的精灵动起来
- python - 无法创建比较列表
- php - 为什么这个功能没有响应?
- python-3.x - 为什么不是所有模块都预先导入?
- authentication - Puppeteer - 通过具有身份验证的代理连接到 HTTPS 网站不起作用
- assembly - 将目标文件与标准库链接的问题
- angular - Angular Resolver 似乎没有更新对象