14.6. 消息标头


Azure ServiceBus 组件支持 25 个消息标头,如下为/are:

Expand
Name描述默认值类型

CamelAzureServiceBusApplicationProperties (common)

常量: APPLICATION_PROPERTIES

生成者和消费者发送并接收的消息的应用属性(也称为自定义属性)。

 

Map

CamelAzureServiceBusContentType (consumer)

常数: CONTENT_TYPE

获取消息的内容类型。

 

字符串

CamelAzureServiceBusCorrelationId (consumer)

常量: CORRELATION_ID

获取关联标识符。

 

字符串

CamelAzureServiceBusDeadLetterErrorDescription (consumer)

恒定: DEAD_LETTER_ERROR_DESCRIPTION

获取已死信的消息的描述。

 

字符串

CamelAzureServiceBusDeadLetterReason (consumer)

常量: DEAD_LETTER_REASON

获取消息已死信的原因。

 

字符串

CamelAzureServiceBusDeadLetterSource (consumer)

常量: DEAD_LETTER_SOURCE

获取此消息所在队列或订阅的名称,然后再死信。

 

字符串

CamelAzureServiceBusDeliveryCount (consumer)

恒定: DELIVERY_COUNT

获取此消息发送到客户端的次数。

 

long

CamelAzureServiceBusEnqueuedSequenceNumber (consumer)

常量: ENQUEUED_SEQUENCE_NUMBER

按服务总线分配给消息的排队序列号。

 

long

CamelAzureServiceBusEnqueuedTime (consumer)

常量: ENQUEUED_TIME

获取此消息在 Azure 服务总线中排队的时间。

 

OffsetDateTime

CamelAzureServiceBusExpiresAt (consumer)

恒定: EXPIRES_AT

获取此消息将过期的日期。

 

OffsetDateTime

CamelAzureServiceBusLockToken (consumer)

常量: LOCK_TOKEN

获取当前消息的锁定令牌。

 

字符串

CamelAzureServiceBusLockedUntil (consumer)

常量: LOCKED_UNTIL

获取此消息锁定过期的日期。

 

OffsetDateTime

CamelAzureServiceBusMessageId (consumer)

constant: MESSAGE_ID

获取消息的标识符。

 

字符串

CamelAzureServiceBusPartitionKey (consumer)

恒定: PARTITION_KEY

获取用于向分区实体发送消息的分区密钥。

 

字符串

CamelAzureServiceBusRawAmqpMessage (consumer)

常量: RAW_AMQP_MESSAGE

AMQP 协议定义的消息表示。

 

AmqpAnnotatedMessage

CamelAzureServiceBusReplyTo (consumer)

constant: REPLY_TO

获取要发送回复的实体地址。

 

字符串

CamelAzureServiceBusReplyToSessionId (consumer)

常量: REPLY_TO_SESSION_ID

获取或设置会话标识符,增强 ReplyTo 地址。

 

字符串

CamelAzureServiceBusSequenceNumber (consumer)

constant: SEQUENCE_NUMBER

通过服务总线获取分配给消息的唯一数字。

 

long

CamelAzureServiceBusSessionId (consumer)

constant: SESSION_ID

获取消息的会话 ID。

 

字符串

CamelAzureServiceBusSubject (consumer)

常数:SUBJ ECT

获取消息的主题。

 

字符串

CamelAzureServiceBusTimeToLive (consumer)

恒定: TIME_TO_LIVE

获取此消息过期前的持续时间。

 

Duration

CamelAzureServiceBusTo (consumer)

常数: TO

获取地址.

 

字符串

CamelAzureServiceBusScheduledEnqueueTime (common)

常量: SCHEDULED_ENQUEUE_TIME

(producer)覆盖此消息应出现在 Service Bus queue 或 topic. (consumer)的 OffsetDateTime。

 

OffsetDateTime

CamelAzureServiceBusServiceBusTransactionContext (producer)

常量: service_BUS_TRANSACTION_CONTEXT

覆盖服务中的事务。此对象仅包含事务 ID。

 

ServiceBusTransactionContext

CamelAzureServiceBusProducerOperation (producer)

常量: DUCER_OPERATION

覆盖要在生成者中使用的所需操作。

Enum 值:

  • sendMessages
  • scheduleMessages
 

ServiceBusProducerOperationDefinition

14.6.1. 消息正文

在生成者中,此组件接受 String 类型或 List<String> 的消息正文来发送批处理消息。

在消费者中,返回的消息正文将是类型为 'String。

14.6.2. Azure ServiceBus Producer 操作

Expand
操作描述

sendMessages

使用批处理方法向服务总线队列或主题发送一组消息。

scheduleMessages

向这个发送方连接的 Azure 服务总线实体发送调度的消息。调度的消息是 enqueued,且仅适用于在调度的 enqueue 时间的接收器。

14.6.3. Azure ServiceBus Consumer 操作

Expand
操作描述

receiveMessages

接收来自服务总线实体的 <b>infinite</b> 信息流。

peekMessages

在不更改接收方或消息源状态的情况下读取下一个活动消息批量。

14.6.3.1. 例子

  • sendMessages
from("direct:start")
  .process(exchange -> {
         final List<Object> inputBatch = new LinkedList<>();
            inputBatch.add("test batch 1");
            inputBatch.add("test batch 2");
            inputBatch.add("test batch 3");
            inputBatch.add(123456);

            exchange.getIn().setBody(inputBatch);
       })
  .to("azure-servicebus:test//?connectionString=test")
  .to("mock:result");
Copy to Clipboard Toggle word wrap
  • scheduleMessages
from("direct:start")
  .process(exchange -> {
         final List<Object> inputBatch = new LinkedList<>();
            inputBatch.add("test batch 1");
            inputBatch.add("test batch 2");
            inputBatch.add("test batch 3");
            inputBatch.add(123456);

            exchange.getIn().setHeader(ServiceBusConstants.SCHEDULED_ENQUEUE_TIME, OffsetDateTime.now());
            exchange.getIn().setBody(inputBatch);
       })
  .to("azure-servicebus:test//?connectionString=test&producerOperation=scheduleMessages")
  .to("mock:result");
Copy to Clipboard Toggle word wrap
  • receiveMessages
from("azure-servicebus:test//?connectionString=test")
  .log("${body}")
  .to("mock:result");
Copy to Clipboard Toggle word wrap
  • peekMessages
from("azure-servicebus:test//?connectionString=test&consumerOperation=peekMessages&peekNumMaxMessages=3")
  .log("${body}")
  .to("mock:result");
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部