Akka actor 可以参与 XA 交易吗?

Posted

技术标签:

【中文标题】Akka actor 可以参与 XA 交易吗?【英文标题】:Can an Akka actor participate in an XA transaction? 【发布时间】:2013-02-18 15:51:42 【问题描述】:

Akka 演员可以参加XA transaction 吗?例如,一个参与者能否在与数据库操作相同的 XA 事务中向远程参与者发送消息(假设 JDBC 驱动程序是一个 XA 驱动程序),这样如果数据库操作失败,参与者就不会发送消息?

【问题讨论】:

【参考方案1】:

您可以连接事务同步,以便在提交 tx 时发送消息。

但请记住消息发送语义。 Actor 通信中没有 ACID 保证。这根本不是我们想要的。

【讨论】:

如果actor发送消息失败会怎样?参与者如何回滚数据库已经提交的事务?为什么 ACID(或至少是原子性和持久性)保证不适合发送参与者消息?

以上是关于Akka actor 可以参与 XA 交易吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将参与者消息限制为特定类型?

直播 | 基于Actor模型的CQRS/ES解决方案分享

如何在 Akka 中监督 actor 并处理异常

Akka - 你应该创建多少个actor实例?

Akka actor、Futures 和闭包

使用 Scala/Akka 在 JVM 中进行高频交易