如何在发布期间订阅者关闭时检索仍在队列中的Azure服务总线消息

时间:2015-03-12 19:23:44

标签: azure message-queue servicebus

我们正在尝试使用Azure主题/订阅将一个域中的更改分发给需要更新其本地缓存的其他服务。所以我们有一个人发布消息和一堆,不知道彼此是什么,听这个主题队列。

我可能会误解天蓝色TopicDescription.DefaultMessageTimeToLive的想法,但我认为只要消息仍在此超时范围内,它就会被传递,无论用户是否在线"在出版时。

但这似乎不是这样吗?

我想要实现的是,如果我将DefaultMessageTimeToLive设置为10分钟,则所有订阅者都可以保证在停机时间低于10分钟时获取所有已发布的消息。

当我尝试时,除非我在发布时正在收听,否则我不会收到消息。 (补充说明:每个接收队列都有自己唯一的名称)

我弄错了还是我错过了配置?

1 个答案:

答案 0 :(得分:0)

如果您希望N个订阅者(听众)可以使用主题,那么您需要N个订阅。订阅是"虚拟" FIFO队列。如果订阅有多个听众,他们就会竞争"为下一条消息。这种模式通常被称为“竞争消费者”模式。在Service Bus Queues, Topics, and SubscriptionsHow to Use Service Bus Topics/Subscriptions了解详情。

TopicDescription.DefaultMessageTimeToLive只定义消息在移动到死信队列之前可用的时长。