我在实现微服务体系结构方面还很陌生,这个问题让我很沮丧
微服务架构如何解决不同端点调用之间的事务机制。
一个例子是基于微服务架构的银行服务 基本上,银行业务是针对不同服务的不同调用来完成交易,如果其中一项失败,则无法消除部分流程,我不知道是否有任何机制可以解决此问题
创建付款
POST / payments / customer / 10 / payment / 100 /
从帐户中借钱
输入 / customers / 10 / accounts / 20
发送客户通知
POST / alerts / customers / 10
答案 0 :(得分:2)
答案是您的API不会公开任何可让您创建无效状态的方法。
每种方法都必须完成一个完整且有效的事务。例如,您没有使用在帐户中添加和删除资金的方法,而是使用了在帐户之间转移资金的方法。转移资金时必须保留的任何记录或通知也必须通过这些方法进行(或至少排队)。
有时,这需要您为您可能认为不完整的交易创建特殊的“有效”状态。例如,当您在剧院中预留座位时,有一种状态是预留座位,直到一段时间(5分钟左右)之后您才需要付费。