第 9 章 saga EIP


9.1. 概述

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

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

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.