【发布时间】:2016-07-14 06:31:17
【问题描述】:
我想从 Azure 服务总线队列中提取消息。我可以从here 提供的示例代码中提取它。即将到来的消息一行一行地传来。就我而言,我需要一次完整的消息。怎么做?
【问题讨论】:
标签: java azure jms servicebus
我想从 Azure 服务总线队列中提取消息。我可以从here 提供的示例代码中提取它。即将到来的消息一行一行地传来。就我而言,我需要一次完整的消息。怎么做?
【问题讨论】:
标签: java azure jms servicebus
@AnandDeshmukh,有两种方法可以从 Azure 服务总线队列中拉取消息,包括AMQP with JMS、REST API via HTTP。
当您引用 tutorial 来提取消息时,我看到您正在使用适用于 Java 的 Azure 服务总线 SDK。根据 GitHub 上 SDK for Java 的source codes,您可以发现 SDK 只是封装了相关的 REST API,它们一次只能通过 HTTP 协议获取消息。
虽然我不知道你的应用场景是什么,但是如果你想要高性能的消息接收,我推荐更好的方法是使用 AMQP 从队列中获取消息。 AMQP 是一个二进制的应用层协议,旨在有效地支持各种消息传递应用程序和通信模式,请参阅https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol 了解它。
【讨论】:
您无法一次获取所有消息,但您始终可以让他们的批次(会话)一次发送。要在服务总线中启用会话,您需要进行两项更改。
1. While creating service bus chose to Enable Session
2. While pushing messaging to Service Bus set property SessionId of Message to same id for a batch
【讨论】: