微服务的 Sagas
= An Eventuate 项目 图像::https://eventuate.io/i/logo.gif[] 这个项目是 http://eventuate.io[Eventuate 的一部分,http://eventuate.io[Eventuate 是一个微服务协作平台。 = Eventuate Tram Sagas |=== | Spring/Micronaut | 图像::https://img.shields.io/maven-central/v/io.eventuate.tram.sagas/eventuate-tram-sagas-bom[link="https://search.maven.org/search?q=io.eventuate.tram.sagas"] | Quarkus | 图像::https://img.shields.io/maven-central/v/io.eventuate.tram.sagas/eventuate-tram-sagas-quarkus-bom[link="https://search.maven.org/search?q=io.eventuate.tram.sagas"] |=== Eventuate Tram Sagas 框架是一个适用于使用 JDBC/JPA 和 Spring Boot/Micronaut 的 Java 微服务的 saga 框架。 在使用微服务架构实现业务应用程序时,一个主要挑战是保持服务之间的数据一致性。 每个服务都有自己的私有数据,并且您无法使用分布式事务。 解决方案是使用 saga。
http://microservices.io/patterns/data/saga.html[saga] 通过使用一系列本地事务,并通过消息或事件进行协调,来保持多个微服务之间的一致性。Saga 包含一系列步骤。每个步骤都包含事务、补偿事务或两者。每个事务都是使用命令消息调用 Saga 参与者的结果。Saga 会按顺序执行前向事务。如果其中一个事务失败,Saga 会按逆序执行补偿事务,以回滚 Saga。
Eventuate Tram Sagas 是一个适用于 Spring Boot、Micronaut 和 Quarkus (使用 https://github.com/eventuate-tram/eventuate-tram-sagas-quarkus[Eventuate Tram 为 Quarkus 应用程序) 的事件化编排框架。它基于 https://github.com/eventuate-tram/eventuate-tram-core[Eventuate Tram 框架,使应用程序能够原子地更新数据库并发布消息,而无需使用 JTA。Eventuate Tram Sagas 在我的书 https://www.manning.com/books/microservice-patterns[Microservice Patterns 中进行了更详细的介绍。
[cols="5%,20%a"] [cols="a,a"]
暂无开放 Issues,或尚未同步最近议题。