我在实施微服务架构方面还很陌生,这个问题让我心烦意乱微服务架构如何解决不同端点调用之间的事务机制。举个例子,基本上是基于微服务架构的银行服务,银行操作是针对不同的服务调用不同的服务来完成一个事务,如果其中一个失败了,那么就没有办法消除部分流程,不知道有没有有什么机制可以解决这个问题创建付款POST /payments/customer/10/payment/100/从账户中扣款PUT /customers/10/accounts/20发送客户通知POST /alerts/customers/10
1 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
答案是您的 API 没有公开任何让您创建无效状态的方法。
每种方法都必须进行一次完整有效的交易。例如,您可以使用在帐户之间转移资金的方法,而不是从帐户中添加和删除资金的方法。转账时必须发生的任何记录保存或通知也必须通过这些方法完成(或至少排队)。
有时这需要您为您可能认为不完整的交易创建特殊的“有效”状态。例如,当您在剧院预订座位时,有一种状态是您的座位已被预订到您尚未付款的某个时间(5 分钟左右)。
添加回答
举报
0/150
提交
取消