12.6. 消息标头


Azure ServiceBus 组件支持 25 个消息标头,如下所列:

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)

常量 :DEL IVERY_COUNT

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

 

long

CamelAzureServiceBusEnqueuedSequenceNumber (consumer)

constant: ENQUEUED_SEQUENCE_NUMBER

通过服务总线获取分配给邮件的 enqueued 序列号。

 

long

CamelAzureServiceBusEnqueuedTime (consumer)

恒定: ENQUEUED_TIME

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

 

OffsetDateTime

CamelAzureServiceBusExpiresAt (consumer)

恒定: EXPIRES_AT

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

 

OffsetDateTime

CamelAzureServiceBusLockToken (consumer)

常数: LOCK_TOKEN

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

 

字符串

CamelAzureServiceBusLockedUntil (consumer)

常数 : LOCKED_UNTIL

获取此消息锁定的日期时间。

 

OffsetDateTime

CamelAzureServiceBusMessageId (consumer)

恒定: MESSAGE_ID

获取消息的标识符。

 

字符串

CamelAzureServiceBusPartitionKey (consumer)

常数: PARTITION_KEY

获取将消息发送到分区实体的分区密钥。

 

字符串

CamelAzureServiceBusRawAmqpMessage (consumer)

恒定: RAW_AMQP_MESSAGE

AMQP 协议定义的消息的表示。

 

AmqpAnnotatedMessage

CamelAzureServiceBusReplyTo (consumer)

常数 : REPLY_TO

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

 

字符串

CamelAzureServiceBusReplyToSessionId (consumer)

Constant: REPLY_TO_SESSION_ID

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

 

字符串

CamelAzureServiceBusSequenceNumber (consumer)

constant: SEQUENCE_NUMBER

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

 

long

CamelAzureServiceBusSessionId (consumer)

常量 : SESSION_ID

获取消息的会话 ID。

 

字符串

CamelAzureServiceBusSubject (consumer)

常数 :SUBJ ECT

获取消息的主题。

 

字符串

CamelAzureServiceBusTimeToLive (consumer)

恒定: TIME_TO_LIVE

在此消息过期前获得持续时间。

 

Duration

CamelAzureServiceBusTo (consumer)

常数: TO

获取地址。

 

字符串

CamelAzureServiceBusScheduledEnqueueTime (common)

恒定: SCHEDULED_ENQUEUE_TIME

(producer)覆盖应出现在服务总线队列或主题中的 OffsetDateTime。(consumer)获取此消息调度的 enqueue 时间。

 

OffsetDateTime

CamelAzureServiceBusServiceBusTransactionContext (producer)

常量 : SERVICE_BUS_TRANSACTION_CONTEXT

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

 

ServiceBusTransactionContext

CamelAzureServiceBusProducerOperation (producer)

恒定: PRODUCER_OPERATION

覆盖制作者中使用的所需操作。

Enum 值:

  • sendMessages
  • scheduleMessages
 

ServiceBusProducerOperationDefinition

12.6.1. 消息正文

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

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

12.6.2. Azure ServiceBus Producer 操作

Expand
操作描述

sendMessages

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

scheduleMessages

将调度的消息发送到此发送者所连接的 Azure 服务总线实体。调度的消息会被排队,并仅在调度的 enqueue 时间上提供给接收器。

12.6.3. Azure ServiceBus Consumer 操作

Expand
操作描述

receiveMessages

从服务总线实体接收 <b>infinite</b> 消息流。

peekMessages

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

12.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