14.6. 消息标头
Azure ServiceBus 组件支持 25 个消息标头,如下为/are:
| Name | 描述 | 默认值 | 类型 |
|---|---|---|---|
| CamelAzureServiceBusApplicationProperties (common) | 生成者和消费者发送并接收的消息的应用属性(也称为自定义属性)。 | Map | |
| CamelAzureServiceBusContentType (consumer) 常数: CONTENT_TYPE | 获取消息的内容类型。 | 字符串 | |
| CamelAzureServiceBusCorrelationId (consumer) 常量: CORRELATION_ID | 获取关联标识符。 | 字符串 | |
| CamelAzureServiceBusDeadLetterErrorDescription (consumer) | 获取已死信的消息的描述。 | 字符串 | |
| CamelAzureServiceBusDeadLetterReason (consumer) | 获取消息已死信的原因。 | 字符串 | |
| CamelAzureServiceBusDeadLetterSource (consumer) | 获取此消息所在队列或订阅的名称,然后再死信。 | 字符串 | |
| CamelAzureServiceBusDeliveryCount (consumer) 恒定: DELIVERY_COUNT | 获取此消息发送到客户端的次数。 | long | |
| CamelAzureServiceBusEnqueuedSequenceNumber (consumer) | 按服务总线分配给消息的排队序列号。 | 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) | 获取或设置会话标识符,增强 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) | (producer)覆盖此消息应出现在 Service Bus queue 或 topic. (consumer)的 OffsetDateTime。 | OffsetDateTime | |
| CamelAzureServiceBusServiceBusTransactionContext (producer) | 覆盖服务中的事务。此对象仅包含事务 ID。 | ServiceBusTransactionContext | |
| CamelAzureServiceBusProducerOperation (producer) 常量: DUCER_OPERATION | 覆盖要在生成者中使用的所需操作。 Enum 值:
| ServiceBusProducerOperationDefinition |
14.6.1. 消息正文 复制链接链接已复制到粘贴板!
在生成者中,此组件接受 String 类型或 List<String> 的消息正文来发送批处理消息。
在消费者中,返回的消息正文将是类型为 'String。
14.6.2. Azure ServiceBus Producer 操作 复制链接链接已复制到粘贴板!
| 操作 | 描述 |
|---|---|
|
| 使用批处理方法向服务总线队列或主题发送一组消息。 |
|
| 向这个发送方连接的 Azure 服务总线实体发送调度的消息。调度的消息是 enqueued,且仅适用于在调度的 enqueue 时间的接收器。 |
14.6.3. Azure ServiceBus Consumer 操作 复制链接链接已复制到粘贴板!
| 操作 | 描述 |
|---|---|
|
| 接收来自服务总线实体的 <b>infinite</b> 信息流。 |
|
| 在不更改接收方或消息源状态的情况下读取下一个活动消息批量。 |
14.6.3.1. 例子 复制链接链接已复制到粘贴板!
-
sendMessages
-
scheduleMessages
-
receiveMessages
from("azure-servicebus:test//?connectionString=test")
.log("${body}")
.to("mock:result");
from("azure-servicebus:test//?connectionString=test")
.log("${body}")
.to("mock:result");
-
peekMessages
from("azure-servicebus:test//?connectionString=test&consumerOperation=peekMessages&peekNumMaxMessages=3")
.log("${body}")
.to("mock:result");
from("azure-servicebus:test//?connectionString=test&consumerOperation=peekMessages&peekNumMaxMessages=3")
.log("${body}")
.to("mock:result");