212.8.3. 恢复


LevelDBAggregationRepository 默认恢复任何失败的交换。它通过执行在持久性存储中扫描故障 Exchange 的后台任务来实现此目的。您可以使用 checkInterval 选项设置此任务运行的频率。恢复工作是确保 Camel 尝试恢复和重做失败的交换的事务。任何发现的交换将从持久性存储中恢复,并再次重新提交。

当 Exchange 被恢复/redelivered时,会设置以下标头:

标头类型描述

Exchange.REDELIVERED

布尔值

设置为 true 以指示 Exchange 处于红色状态。

Exchange.REDELIVERY_COUNTER

整数

从 1 开始重新发送尝试。

只有当成功处理 Exchange 时,它才会标记为完成,当 确认 方法在 AggregationRepository 上调用时,才会将其标记为完成。这意味着,如果同一交换再次失败,它将被重试,直到成功为止。

您可以使用选项 maximumRedeliveries 来限制给定恢复的 Exchange 的最大重新传送尝试次数。您还必须设置 deadLetterUri 选项,因此 Camel 知道在点击 的最大值时要发送交换 的位置。

您可以在 camel-leveldb 的单元测试中看到一些示例,例如: https://svn.apache.org/repos/asf/camel/trunk/components/camel-leveldb/src/test/java/org/apache/camel/component/leveldb/LevelDBAggregateRecoverTest.java

212.8.3.1. 在 Java DSL 中使用 LevelDBAggregationRepository

在这个示例中,我们希望在 target/data/leveldb.dat 文件中持续聚合的信息。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.