我正在使用Apache Artemis代理和Apache驼峰JMS组件
因为我使用的是Apache驼峰JMS组件,所以在这里,我正在听主题
from(jms:topic:my_topic?durableSubscriptionName=dsn&clientId=testId)
.log("......>")
在这里我已经设置
clientId = testId
topic = my_topic
durableSubscriptionName = "dsn"
现在,当我使用的是管理控制台. UI,所以它在消费者id中显示了空的客户端id
在上图中Queue=testId. dsn,其中testId是clientId,dsn是订阅名称。
客户端标头下也没有显示clientId。
为什么客户端名称没有显示在客户端标头下。以及为什么队列值显示clientId订阅名称的连接
这边请帮忙,谢谢!
ActiveMQ Artemis支持许多不同的协议,但它们都使用所谓的核心API在内部实现。根据您使用的协议(例如AMQP、OpenWire等),这可能会有所不同,但如果您使用的是代理附带的JMS客户端(即“核心”JMS客户端),那么客户端ID存储在代理上“核心”会话的元数据中。然而,我看不到网络控制台实际在哪里解压缩和显示元数据,因此看起来没有直接的方法来识别客户端ID。然而,您可以通过查看队列名称的第一部分来推断客户端ID。
队列的名称(代表订阅)由代理通过连接客户端ID和订阅名称来生成。这是代理区分持久订阅并确保重新连接的客户端能够再次访问其原始订阅的简单方法。