ActiveMQ通配符式订阅

之前我们在介绍ActiveMQ的时候,在进行举例的时候其生产者和消费者配置的目的地Destination一般都是一致的,不然我们的消费者也接受不到生产者发送的消息呀,但是其实我们的消费者在配置Destination的时候是可以进行通配符Wildcards订阅的。


Wildcards用来支持联合的名字分层体系(federated name hierarchies)。它不是JMS 规范的一部分,而是ActiveMQ 的扩展。ActiveMQ 支持三种 .*>

  • . 用于作为路径上名字间的分隔符
  • * 用于匹配路径上的任何名字
  • > 用于递归地匹配任何以这个名字开始的destination



这里我们在消息的生产者配置的目的地Destination如下:
在这里插入图片描述

这里我们消费者想要获取上述com.bax.test.mq中的消息时,我们设置相同的名称肯定是可以获取了,这里我们在消费者中使用通配符该如何配置呢,如下:
在这里插入图片描述

上述消费者不仅可以获取到com.bxs.test.mq的消息,还可以获取com.bxs.test2.mqcom.bxs.dev.mq 等等,其中的*可以由任何的名字进替换,但是不能有分隔符.存在,如下:
在这里插入图片描述

这样的com.*.mq是无法匹配到com.bxs.test.mq的,想要将第二个名字也进行模糊配置,就必须用两个符号,如上。



如果不想使用两个*,比如可能中间还有更多的分隔等等,这里我们就可以使用>,该匹配符就没有分隔符的限制了,如下:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章