ActiveMQ中确实存在仅允许订阅者连接的接收器端口,也就是所谓的“独享串行队列”(Exclusive Queues)。具体实现方法为,在broker配置文件中设置一个参数broker.xml,将destinationPolicy的属性值设为exclusive。 示例代码如下:
该示例代码中,我们设定了一个名为queue.exclusivetest.example.com的独享队列。这个队列只允许test读取。其他没有读取权限的用户将无法连接到此队列。
需要注意的是,对于独享队列,在broker重启之后,只有第一个连接到该队列的订阅者才有资格接收消息。其他订阅者连接到该队列时,将收不到任何消息。
因此,在使用独享队列时,需要注意其特殊性质,避免出现因此带来的问题。