我想从Azure服务总线队列中提取消息。我可以从提供的示例代码here中提取它。即将到来的消息将逐行传递。在我的情况下,我需要立即完整的消息。怎么做?
答案 0 :(得分:2)
当您引用tutorial来提取消息时,我发现您正在使用Azure Service Bus SDK for Java。根据GitHub上SDK for Java的source codes,您可以发现SDK只包含了相关的REST API,这些REST API一次只能通过HTTP协议获取消息。
虽然我不知道您的应用程序场景是什么,但如果您希望获得高性能的接收消息,我建议更好的方法是使用AMQP从队列中获取消息。 AMQP是一种二进制应用层协议,旨在有效支持各种消息传递应用程序和通信模式,请参阅https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol以了解它。
答案 1 :(得分:0)
您不能一次获得所有消息,但始终可以使它们的批次(会话)一次发送。要在服务总线中启用会话,您需要进行两项更改。
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