如何配置Artemis Broker使自动创建的组播队列默认使用地址名
ActiveMQ Artemis 2.18 多播队列自动命名Broker侧配置方案
无需修改客户端代码,直接调整Broker端broker.xml配置即可实现需求,操作步骤如下:
- 找到配置中
match="#"对应的<address-setting>配置块,在原有自动创建资源的开关配置下,新增use-address-name-for-auto-created-multicast-queues配置项,完整配置参考:
<address-setting match="#"> <auto-create-queues>true</auto-create-queues> <auto-create-addresses>true</auto-create-addresses> <!-- 自动创建的多播队列默认使用对应地址名作为队列名 --> <use-address-name-for-auto-created-multicast-queues>true</use-address-name-for-auto-created-multicast-queues> </address-setting>
- 保存配置文件后重启Broker,配置立即生效。
配置说明
- 该配置为ActiveMQ Artemis 2.18版本原生支持的功能,无需升级Broker版本
- 配置生效后,原有Camel JMS消费代码
from("jms:topic:my_topic")无需任何改动,连接不存在的多播地址时,自动生成的队列名将与地址名保持一致,即预期的my_topic,和客户端通过FQDN格式手动指定队列名的效果完全一致 - 该命名规则仅对持久订阅、客户端未显式指定队列名的常规多播消费生效;符合JMS规范的非持久临时订阅仍会生成随机名称的临时队列,这类队列会在消费者断开连接后自动清理,不影响业务使用。
内容的提问来源于stack exchange,提问作者Antoine Wils
相关产品推荐
相关产品推荐

