我正在使用 ActiveMQ Artemis 消息系统,并且正在使用 STOMP (stomp.py) 测试我的设置。
我在 Artemis 上创建了一个名为 的“地址” Site.SOF.Order.Fulfillment.Submission.ActiveOmni.Topic
,并为其附加了两个队列:
Site.SOF.Order.Fulfillment.Submission.ActiveOmni.queue
(多播)Site.SOF.Order.Fulfillment.Submission.ActiveOmni.log.queue
(多播)
以下是导出的绑定:
<bindings>
<address-binding routing-types="ANYCAST" name="DLQ" id="2"/>
<address-binding routing-types="ANYCAST" name="ExpiryQueue" id="6"/>
<address-binding routing-types="MULTICAST" name="activemq.notifications" id="10"/>
<address-binding routing-types="MULTICAST" name="Site.SOF.Order.Fulfillment.Submission.Topic" id="92"/>
<queue-binding address="Site.SOF.Order.Fulfillment.Submission.Topic" filter-string="" name="Site.SOF.Order.Fulfillment.Submission.log.Queue" id="97" routing-type="MULTICAST"/>
<queue-binding address="DLQ" filter-string="" name="DLQ" id="4" routing-type="ANYCAST"/>
<queue-binding address="ExpiryQueue" filter-string="" name="ExpiryQueue" id="8" routing-type="ANYCAST"/>
<queue-binding address="Site.SOF.Order.Fulfillment.Submission.Topic" filter-string="" name="Site.SOF.Order.Fulfillment.Submission.ActiveOmni.Queue" id="94" routing-type="MULTICAST"/>
</bindings>
我创建了一个有权访问的用户Site.*
那么如何访问队列呢?例如,如果我像这样使用 stomp.py 命令行工具:
> subscribe Site.SOF.Order.Fulfillment.Submission.ActiveOmni.queue
我得到错误:
[username] does not have permission='CREATE_ADDRESS' on address Site.SOF.Order.Fulfillment.Submission.ActiveOmni.queue
所以我尝试添加/queue/
到前面,正如我在教程中看到的那样
> subscribe /queue/Site.SOF.Order.Fulfillment.Submission.ActiveOmni.queue
但我得到同样的错误:
[username] does not have permission='CREATE_ADDRESS' on address /queue/Site.SOF.Order.Fulfillment.Submission.ActiveOmni.queue
我可以毫无问题地发送到主题/地址。以下结果导致两个队列中都出现“hello”消息。
send Site.SOF.Order.Fulfillment.Submission.ActiveOmni.Topic "hello"
这是我缺少的命名约定吗?还是一种指定主题与队列的方法?我在这里遗漏了什么太明显而无法清楚记录的东西?