通过网络连接器连接的代理之间的持久订阅的clientid是否唯一?

问题描述

  • brokerA和brokerB通过网络连接器连接
  • 经纪人A和经纪人B具有相同名称主题“ testTopic”
  • DurableSubscriber1连接到broker A
  • 的testTopic
  • DurableSubscriber2也连接到broker A 的testTopic
  • DurableSubscriber3连接到broker B
  • 的testTopic
  • 3个DurableSubscribers的ClientID是相同的ID“ testID”

首先,我创建DurableSubscriber1。接下来,我创建DurableSubscriber 2 。但是我无法创建DurableSubscriber2。我认为是因为不能将DurableSubscriber创建为相同的ClientID。

但是,创建DurableSubscriber1之后,可以创建DurableSubscriber 3

是否相同的clientid的DurableSubsucriptions和连接到不同代理的相同Topic的每个代理人的DurableSubsucriptions不同?

解决方法

持久订阅在ActiveMQ代理之间是不同的,因此连接到代理A的客户端可以创建持久订阅,该持久订阅存储的消息与代理B上具有相同客户端ID的另一个客户端不同。这是持久订阅并非总是代理网络的好选择的一个原因,因为如果订阅者先断开连接然后重新连接到另一个代理,则消息可能会搁浅,因为这将导致其较旧的订阅中的消息搁浅直到返回给经纪人。