10.4. 声明检查 EIP


声明检查 EIP

声明检查 EIP 模式,如 图 10.4 “声明检查模式” 所示,允许您将消息内容替换为声明检查(唯一键)。稍后 使用声明检查 EIP 模式检索消息内容。您可以将消息内容临时存储到一个持久存储中,如数据库或文件系统。当消息内容非常大(以及发送过程中昂贵的)且所有组件都需要所有信息时,这个模式很有用。

当您无法使用外部方信任信息时,它也非常有用。在这种情况下,使用 Claim Check 来隐藏数据的敏感部分。

EIP 模式的 Camel 实施会在内部内存存储中临时存储消息内容。

图 10.4. 声明检查模式

将存储在库中

10.4.1. 声明检查 EIP 选项

Claim Check EIP 支持下表中列出的选项:

Name

描述

默认

类型

operation

需要使用声明检查操作。它支持以下操作:

* get - 获取 (不要删除)给定密钥的声明检查。

* GetAndRemove - Gets 并删除给定密钥的声明检查。

* set - 使用给定键设置新声明检查。如果密钥已存在,它将被覆盖。

* push - 在堆栈上设置一个新的声明检查(不要使用该键)。

* 弹出 - 从堆栈获取最新的声明检查(不要使用密钥)。

当使用 Get,GetAndRemove, 或 Set 操作时,您必须指定一个密钥。然后,这些操作将使用 键存储和检索数据。使用这些操作将多个数据存储在不同的键中。但是,推送和 弹出 操作不使用密钥,而是将数据存储在堆栈结构中。

 

ClaimCheckOperation

key

要将特定键用于声明检查,请执行以下操作:

 

字符串

filter

指定一个过滤器来控制您要从声明检查存储库中合并的数据。

 

字符串

strategyRef

使用自定义 AggregationStrategy 而不是默认的实现。您不能同时使用自定义聚合策略并同时配置数据。

 

字符串

过滤选项

使用 Filter 选项定义在使用 GetPop 操作时要合并的数据。使用 AggregationStrategy 合并数据。默认策略使用 filter 选项轻松指定要合并的数据。

filter 选项使用 String 值,语法如下:

  • 正文 :聚合邮件正文
  • 附件 :聚合所有邮件附件
  • 标头 :聚合所有邮件标题
  • header:pattern: 用于聚合与模式匹配的所有消息标头

pattern 规则支持通配符和正则表达式。

  • 通配符匹配(模式以 * 结尾且名称以模式开头)
  • 正则表达式匹配

要指定多个规则,用 逗号 ()来分隔它们。

以下是包含消息正文以及以 foo 开头的所有标头的基本过滤器示例:

body, header:foo*
  • 仅合并邮件正文: 正文
  • 仅合并邮件附件: 附件
  • 仅合并标头: 标头
  • 合并标题名称 foo only: header:foo

如果将过滤规则指定为空或通配符,您可以合并所有内容。如需更多信息,请参阅 过滤要合并的数据

注意

当您将数据合并回来时,系统会覆盖任何现有的数据。此外,它还存储现有的数据。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.