为什么持久订阅一次只能有一个活动订阅者

时间:2017-08-22 15:25:30

标签: java jms message-queue messagebroker durability

来自official doc

  

以更高的开销为代价,你可以使用   Session.createDurableSubscriber方法用于创建持久订阅者。   持久订阅一次只能有一个活动订阅者

你能解释为什么选择设计吗?

从我的角度来看,当我们有很多订阅者时,主题就是特别受到了影响。

1 个答案:

答案 0 :(得分:1)

主题可以包含任意数量的订阅者,持久且非持久。每个订阅者都将获得已发布消息的副本。因此,当您拥有大量订阅者时,您需要创建大量订阅。

如果有多个订阅者共享相同的订阅,则将在其中分发发布。因此,只有一个订阅者才能获得该发布,而不是全部。

持久订阅是指即使订阅应用程序处于脱机状态,也会将发布发送到订阅者的队列。一旦应用程序联机,就会传递这些消息。