128.6. HawtDB
可作为 Camel 2.3 提供
HawtDB 是一个轻量级、可嵌入的键值数据库。它允许与 Camel 一起为各种 Camel 功能(如聚合器)提供持久性支持。
已弃用
HawtDB 项目已弃用,由 leveldb 替代,作为轻量级、可嵌入的键值数据库。要使用 leveldb 可轻松使用该 leveldbjni 项目。Apache ActiveMQ 项目正在计划将 leveldb 用作未来基于的主要消息存储位置,以取代 kahadb。
我们建议使用 camel-leveldb 组件替代它。
HawtDB 1.4 或更早版本的问题
HawtDB 1.4 或更早版本中存在一个错误,这意味着文件存储不会释放未使用的空间。这意味着文件在不断增长。这个问题已在带有 Camel 2.5 开始的 HawtDB 1.5 中解决。
它提供的当前功能:
- HawtDBAggregationRepository
128.6.1. Using HawtDBAggregationRepository
HawtDBAggregationRepository
是一个 AggregationRepository
,它可即时保留聚合的消息。这可确保您不会松散的消息,因为默认聚合器将仅使用内存 AggregationRepository
。
它有以下选项:
选项 | 类型 | 描述 |
---|---|---|
| 字符串 |
必需的存储库名称。允许您将共享的 |
| 字符串 | 持久性存储的文件名。如果启动新文件时不存在 文件。 |
| int | 映射到文件存储的内存片段缓冲区的大小。默认其 8mb。该值以字节为单位。 |
| 布尔值 |
|
| 短 | 内存页的大小。默认情况下,它的 512 字节。该值以字节为单位。 |
| HawtDBFile |
使用现有配置的 |
| 布尔值 |
如果存在,get 操作是否应该返回旧的现有 Exchange。默认情况下,这个选项为 |
| 布尔值 |
是否启用恢复。此选项默认为 |
| long | 如果启用了恢复,则会每 x 一次运行后台任务来扫描失败的交换以进行恢复并重新提交。默认情况下,这个间隔为 5000 millis。 |
| int |
允许您限制恢复的交换尝试的最大重新传送尝试数。如果启用,如果所有重新传送尝试都失败,则 Exchange 将移到 dead letter 频道。默认情况下禁用这个选项。如果使用这个选项,则必须提供 |
| 字符串 |
一个 Dead Letter Channel 的端点 uri,其中会移动已耗尽恢复的 Exchange。如果使用这个选项,则必须提供 |
|
| Camel 2.12: 打开选择性锁定,在集群环境中通常需要多个 Camel 应用程序共享基于 HawtDB 的聚合存储库。 |
必须提供 repositoryName
选项。然后,必须提供 persistentFileName
或 hawtDBFile
。