【发布时间】:2017-04-14 17:54:02
【问题描述】:
给定微服务架构,当对服务的调用超时时,调用者干脆放弃。但是,请求最终得到满足并插入了新记录。
问题是调用者系统确定请求由于超时而失败。维持此交易的最佳方式是什么?
【问题讨论】:
-
阅读 CAP 问题
-
您应该提供更多关于微服务提供的接口的信息。有面向请求/响应的微服务、基于消息(队列)的微服务,也可能有基于事件的微服务。所有这些都暴露了不同类型的通信,这些通信对检测和(如果可能)随后处理错误的能力有很大影响。
-
它是 HTTP RESTful 服务和所有同步服务。我认为这个问题只是边缘情况,实现分布式事务的成本很高。所以我只是想看看是否有任何成熟的模式可以遵循而不是定制我自己的模式。不幸的是,调用者超出了我的控制范围,所以我想知道当调用者在超时情况下放弃时是否有方法可以轻松回滚。我想没有很多选择。
标签: transactions timeout microservices