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

它有以下选项:

选项类型描述

repositoryName

字符串

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

persistentFileName

字符串

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

bufferSize

int

映射到文件存储的内存片段缓冲区的大小。默认其 8mb。该值以字节为单位。

sync

布尔值

HawtDBFile 是否应该同步写操作。默认为 true。通过同步写操作,确保其始终等待所有写入操作到磁盘,因此不会松散更新。如果您禁用这个选项,则 HawtDB 会在有多个写入时自动同步。

pageSize

内存页的大小。默认情况下,它的 512 字节。该值以字节为单位。

hawtDBFile

HawtDBFile

使用现有配置的 org.apache.camel.component.hawtdb.HawtDBFile 实例。

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 选项。

optimisticLocking

false

Camel 2.12: 打开选择性锁定,在集群环境中通常需要多个 Camel 应用程序共享基于 HawtDB 的聚合存储库。

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.