第 9 章 saga EIP


9.1. 概述

Saga EIP 提供了在 Camel 路由中定义一系列相关操作的方法,这些操作可以成功完成或未执行或未执行。saga 实现使用向全球一致结果的任何传输协调分布式服务。saga EIP 与典型的 ACID 分布式(XA)事务不同,因为不同参与服务的状态保证只在 Saga 结束时保持一致,而不是在任何中间步骤中。

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

saga EIPs 不对数据使用锁定。相反,它们定义了 Compensating Action 的概念,它是标准流遇到错误时应执行的操作,其目的是恢复流执行前存在的状态。使用 Java 或 XML DSL 在 Camel 路由中声明操作,且仅在需要时由 Camel 调用(如果因为错误取消了 saga )。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.