9.3. Saga 服务配置
Saga EIP 要求实施接口 org.apache.camel.saga.CamelSagaaService
的服务添加到 Camel 上下文。Camel 目前支持以下 Saga 服务:
- InMemorySagaService :这是 Saga EIP 的基本 实现,它不支持高级功能(没有远程上下文传播,在应用程序失败时不保证一致性)。
9.3.1. 使用 In-Memory Saga 服务
不建议在生产环境中使用内存 Saga 服务,因为它不支持 Saga 状态的持久性(仅保留在内存中),因此无法在应用程序故障时保证 Saga EIP 的一致性(例如: JVM 崩溃)。另外,在使用内存中 Saga 服务时,Saga 上下文无法使用传输级标头传播到远程服务(可以使用其他实现实现)。如果要使用内存中 saga 服务时,您可以添加以下代码来自定义 Camel 上下文。该服务属于 camel-core
模块。
context.addService(new org.apache.camel.impl.saga.InMemorySagaService());