212.8. LevelDB

可从 Camel 2.10 开始

leveldb 是一个轻量级、可嵌入的键值数据库。它允许与 Camel 一起为各种 Camel 功能(如聚合器)提供持久性支持。

它提供的当前功能:

  • LevelDBAggregationRepository

212.8.1. Using LevelDBAggregationRepository

LevelDBAggregationRepository 是一个 AggregationRepository,可在 fly persist 中保留聚合的消息。这可确保您不会松散的消息,因为默认聚合器将仅使用内存 AggregationRepository

它有以下选项:

选项类型描述

repositoryName

字符串

必需的存储库名称。允许您将共享 LevelDBFile 用于多个存储库。

persistentFileName

字符串

持久性存储的文件名。如果启动新文件时不存在 文件。

levelDBFile

LevelDBFile

使用现有配置的 org.apache.camel.component.leveldb.LevelDBFile 实例。

sync

布尔值

Camel 2.12: LevelDBFile 应在写入或不同步。默认为 false。通过同步写操作,确保其始终等待所有写入操作到磁盘,因此不会松散更新。有关同步与同步写入的详情,请参阅 LevelDB 文档。

returnOldExchange

布尔值

如果存在,get 操作是否应该返回旧的现有 Exchange。默认情况下,这个选项为 false 以优化,因为我们在聚合时不需要旧的交换。

useRecovery

布尔值

是否启用恢复。此选项默认为 true。启用 Camel 聚合器自动恢复失败的聚合交换时,它们被重新提交。

recoveryInterval

long

如果启用了恢复,则会每 x 一次运行后台任务来扫描失败的交换以进行恢复并重新提交。默认情况下,这个间隔为 5000 millis。

maximumRedeliveries

int

允许您限制恢复的交换尝试的最大重新传送尝试数。如果启用,如果所有重新传送尝试都失败,则 Exchange 将移到 dead letter 频道。默认情况下禁用这个选项。如果使用这个选项,则必须提供 deadLetterUri 选项。

deadLetterUri

字符串

一个 Dead Letter Channel 的端点 uri,其中会移动已耗尽恢复的 Exchange。如果使用这个选项,则必须提供 最大值的Redeliveries 选项。

必须提供 repositoryName 选项。然后,必须提供 persistentFileNamelevelDBFile