第 9 章 Saga EIP


9.1. 概述

Saga EIP 提供了一种方式,可以在 Camel 路由中定义一系列相关操作,它们可以成功完成或未执行或不兼容。Saga 实施协调使用任意传输向全球一致的结果进行通信的分布式服务。Saga EIP 与 classical ACID 分布式(XA)事务不同,因为不同参与服务的状态仅在 Saga 的末尾保持一致,而不在中间步骤中保持一致。

Saga EIP 适用于不使用分布式事务的用例。例如,参与 Saga 的服务允许使用任何类型的数据存储,如类数据库,甚至 NoSQL 非事务数据存储。它们也适合用于无状态云服务,因为它们不需要与服务一起存储事务日志。Saga EIP 也不需要以少量时间完成,因为它们不使用数据库级别的锁定,这与事务不同。因此,他们可以生存时间较长的时间,从几秒钟到几天。

Saga EIP 不使用数据上的锁定。相反,它们定义了 Compensating Action 的概念,它是标准流遇到错误时应执行的操作,但恢复流执行前的状态的目的。可以使用 Java 或 XML DSL 在 Camel 路由中声明各种操作,且只在需要时(如果 saga 被因为错误而取消)才会调用。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.