第 7 章 消息结构


摘要

消息构建模式描述了通过系统传递的消息的各种形式和功能。

7.1. 关联标识符

概述

图 7.1 “关联标识符模式” 中显示的 关联标识符 模式描述了如何将回复消息与请求消息匹配,因为异步消息传递系统用于实现请求回复协议。这种理念表明,请求消息应该生成唯一的令牌,请求 ID 则标识请求消息和回复消息应包括令牌、关联 ID,其中包含匹配的请求 ID。

Apache Camel 通过获取或设置消息上的标头来支持来自 EIP 模式的 Correlation 标识符。

使用 ActiveMQ 或 JMS 组件时,关联标识符标头称为 JMSCorrelationID。您可以将自己的关联标识符添加到任何消息交换中,以帮助在单个对话(或业务流程)中关联消息。关联标识符通常存储在 Apache Camel 消息标头中。

有些 EIP 模式会启动子消息,在这种情况下,Apache Camel 将关联 ID 添加到 Exchanges,作为带有其密钥 Exchange.CORRELATION_ID 的属性,它链接到源交换。例如,拆分器多播接收者列表wire tap EIPs 执行此操作。

图 7.1. 关联标识符模式

关联标识符模式

事件消息

Camel 通过支持 消息 上的 Exchange Patterns 支持企业集成模式 中的事件消息,该消息 可设置为 InOnly 来指示单向事件消息。Camel Apache Camel 组件参考 然后使用底层传输或协议实施此模式。

事件消息解决方案

许多 Apache Camel 组件参考的默认行为是 In Only,如 JMSFileSEDA

明确指定 InOnly

如果您使用组件,默认为 InOut,您可以使用 pattern 属性覆盖端点 的消息交换 模式。

foo:bar?exchangePattern=InOnly

从 Camel 上的 2.0 开始,您可以使用 DSL 指定 消息交换模式

使用 Fluent Builders

from("mq:someQueue").
  inOnly().
  bean(Foo.class);

或者,您可以使用显式模式调用端点

from("mq:someQueue").
  inOnly("mq:anotherQueue");

使用 Spring XML 扩展

<route>
    <from uri="mq:someQueue"/>
    <inOnly uri="bean:foo"/>
</route>
<route>
    <from uri="mq:someQueue"/>
    <inOnly uri="mq:anotherQueue"/>
</route>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.