12.6. 消息标头
Azure ServiceBus 组件支持 25 个消息标头,如下所列:
| Name | 描述 | 默认值 | 类型 |
|---|---|---|---|
| CamelAzureServiceBusApplicationProperties (common) | 应用属性(也称为自定义属性)分别由生产者和消费者发送和接收的消息。 | Map | |
| CamelAzureServiceBusContentType (consumer) 常数: CONTENT_TYPE | 获取消息的内容类型。 | 字符串 | |
| CamelAzureServiceBusCorrelationId (consumer) 常数: CORRELATION_ID | 获取关联标识符。 | 字符串 | |
| CamelAzureServiceBusDeadLetterErrorDescription (consumer) | 获取已死信消息的描述。 | 字符串 | |
| CamelAzureServiceBusDeadLetterReason (consumer) | 获取消息死信的原因。 | 字符串 | |
| CamelAzureServiceBusDeadLetterSource (consumer) | 获取此消息在死信之前排队的队列或订阅的名称。 | 字符串 | |
| 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) | (producer)覆盖应出现在服务总线队列或主题中的 OffsetDateTime。(consumer)获取此消息调度的 enqueue 时间。 | OffsetDateTime | |
| CamelAzureServiceBusServiceBusTransactionContext (producer) | 覆盖服务中的事务。此对象仅包含事务 ID。 | ServiceBusTransactionContext | |
| CamelAzureServiceBusProducerOperation (producer) | 覆盖制作者中使用的所需操作。 Enum 值:
| ServiceBusProducerOperationDefinition |
12.6.1. 消息正文 复制链接链接已复制到粘贴板!
在制作者中,此组件接受 String 类型的消息正文或 List<String> 来发送批处理消息。
在消费者中,返回的消息正文将类型为 'String。
12.6.2. Azure ServiceBus Producer 操作 复制链接链接已复制到粘贴板!
| 操作 | 描述 |
|---|---|
|
| 使用批处理的方法将一组消息发送到服务总线队列或主题。 |
|
| 将调度的消息发送到此发送者所连接的 Azure 服务总线实体。调度的消息会被排队,并仅在调度的 enqueue 时间上提供给接收器。 |
12.6.3. Azure ServiceBus Consumer 操作 复制链接链接已复制到粘贴板!
| 操作 | 描述 |
|---|---|
|
| 从服务总线实体接收 <b>infinite</b> 消息流。 |
|
| 在不更改接收方或消息源的状态的情况下读取下一个活跃消息的批处理。 |
12.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");