You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Camel-JMS共享持久订阅subscriptionName点号转义问题咨询

ActiveMQ Artemis中Camel共享持久订阅队列名称转义问题

环境版本

  • Apache Artemis: 2.31.2
  • Spring-boot : 2.7.18
  • Apache Camel: 3.22.0

问题背景与配置

已从ActiveMQ Classic VirtualTopics迁移到ActiveMQ Artemis,broker配置如下:

<address name="VirtualTopic.ccncsi.fromEurope">
   <multicast>
      <queue name="Consumer.dispatcher.VirtualTopic.ccncsi.fromEurope"/>
      <queue name="Consumer.ccncsiaudit.VirtualTopic.ccncsi.fromEurope"/>
      <queue name="Consumer.ccncsigateway.VirtualTopic.ccncsi.fromEurope"/>
   </multicast>
</address>

尝试用Camel JMS端点连接地址VirtualTopic.ccncsi.fromEurope,配置共享持久订阅,端点地址为:

jms:topic:VirtualTopic.ccncsi.fromEurope?subscriptionName=Consumer.dispatcher.VirtualTopic.ccncsi.fromEurope&subscriptionDurable=true&subscriptionShared=true

问题现象

路由部署并获得权限后,端点会在对应地址下自动创建新队列,队列名称中的点号被转义为Consumer\.dispatcher\.VirtualTopic\.ccncsi\.fromEurope,与broker配置中预定义的Consumer.dispatcher.VirtualTopic.ccncsi.fromEurope队列并存。

旧客户端依赖原有队列名称通过WebLogic和Openwire协议连接,因此必须保留原有队列名称。

队列列表

当前消费者实际连接到转义后的队列,但期望从预定义的未转义队列消费消息。

跟踪细节

排查发现,调用org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler#session.createSharedQueue(request.toQueueConfiguration());时,请求(org.apache.activemq.artemis.core.protocol.core.Packet)转换为QueueConfiguration后,队列名称中的点号已经被转义。

提问

这是正常行为吗?


内容的提问来源于stack exchange,提问作者Themikebe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:22:46