我读过一些关于微服务架构的文章,但没有人讨论事务。他们都说这很难做到。也许有人能描述一下如何处理这件事?
但不是从领域方面,而是从技术方面。假设我们有一个业务案例,我们需要调用两个不同的服务,并且这两个服务都对数据库进行了一些更改。但是如果第二个发生错误,该如何回滚呢?
谁知道针对这个问题的一些库或设计模式?
发布于 2014-07-10 20:26:45
最好的设计是具有独立的服务:每个服务只在其自己的事务中执行其工作,而您的工作流程预计单个服务会出现故障。
如果您真的只需要在调用所有服务时都没有错误地提交,那么您应该创建一个更高级别的服务,在外部事务中执行这些调用。
发布于 2015-08-06 04:59:41
在前面答案的基础上,分布式事务是解决方案。在我看来,你不想构建自己的机制来跟踪全局事务状态,相反,你想使用某种产品--有几种。我写了一篇关于用Java应用服务器解决这个问题的长篇博客文章:
http://blog.maxant.co.uk/pebble/2015/08/04/1438716480000.html
发布于 2015-08-27 15:50:11
两阶段提交可以是option.Coordinator向cohorts.Cohorts发送提交请求消息,发送回ok.After,然后协调器向cohorts.If发送提交消息,如果发生故障,协调器向队列发送回滚消息。
https://stackoverflow.com/questions/24676364
复制相似问题