【发布时间】:2016-05-10 05:16:56
【问题描述】:
我正在寻找在我的项目中的微服务之间进行相互通信时保持数据一致的最佳方法。
使用 Jersey + Guice 构建的项目,并使用 Akka 在整个系统中粘合服务。我在调用另一个服务时使用单独的事务以避免长时间运行的事务。我使用 Hibernate 作为 ORM 和 Postgres 作为 DB。 流程如下:
- 开始交易
- 做一些工作
- 提交事务
- 使用 Akka 调用另一个服务,接收或发送一些数据
- 开始交易
- 做剩余的工作
- 提交事务
因此,如果第 4 步失败,我的数据将处于不一致状态。我花了几个小时寻找解决方案来避免它,但我失败了。有什么正确的方法让它保持一致的状态吗?
【问题讨论】:
标签: java hibernate transactions akka microservices