微服务已经存在一段时间了,这种方法有其优点和缺点,但你最终将不得不面对的一个问题是交易的原子性或者说没有原子性。企业应用程序通常在api层面上具有某种工作单位,但在你的微服务调用另一个微服务(或api)并且它不知道分布式事务的情况下,会出现一些问题,当发生故障时需要处理:假设您有微服务“为项目付款”。当客户调用您的微服务api时,该方法内部:在自己的数据库中放置一些数据,创建发票文件,将其发送到另一个微服务,发送电子邮件,可能调用另一个不知道你的工作单位的系统。如果该序列的每个部分都成功了,那么一切都很好,但问题是如何处理错误,你正在调用的另一个api不可用,但你已经在许多其他系统中更改了状态,该怎么办?有没有一种好的方法来应对这种情况?