当使用Brokered Messaging作为Service Bus Queue时,我理解云队列本身是持久的。它是否也会影响客户端?
例如,当我将消息发送到队列时,我是否应该手动处理由于连接丢失限制问题导致交易被拒绝的情况,或者它将自动保留在客户端的某个位置并稍后重新发送?
答案 0 :(得分:3)
Service Bus QueueClient
对象或库中没有“自动”缓存或存储消息。如果对QueueClient.Send(message)
的调用成功而没有例外,则保证消息是持久存储的。如果引发异常,则表示发生故障(由于连接/限制等)。如果要使客户端对连接丢弃等具有弹性,则可以考虑使用MSMQ等本地队列,以防邮件发送失败。我们有一个示例,展示了如何在MSMQ和Service Bus Queue之间传输消息:
http://code.msdn.microsoft.com/windowsazure/Brokered-Messaging-MSMQ-a31c6644