1

我试图了解 ActiveMQ 的配置如何处理dynamicallyIncludedDestinations等。

例如。考虑以下配置提取:

<amq:broker id="broker" ... advisorySupport="false"> 
    <amq:networkConnectors>
        <amq:networkConnector name="connectorA" duplex="true"
            conduitSubscriptions="false" uri="${networkconnectorURL}">
                <amq:dynamicallyIncludedDestinations>
                    <amq:queue physicalName=">"/>
                 </amq:dynamicallyIncludedDestinations>
            </amq:networkConnector>

            <amq:networkConnector name="connectorB" duplex="true" 
             conduitSubscriptions="true" uri="${networkconnectorURL}">
                <amq:staticallyIncludedDestinations>
                    <amq:topic physicalName="topicA" />
                    <amq:topic physicalName="topicB" />
                </amq:staticallyIncludedDestinations>
            </amq:networkConnector>
    </amq:networkConnectors>

在这种情况下:

  • 给定connectorA定义dynamicallyIncludedDestinations,这是否会自动排除未明确定义的任何内容?即,将connectorA接收发送到主题而不是队列的任何消息?

此配置声明advisorySupport='false',其中文档说明如下:

如果advisorySupport 代理属性被禁用,网络将无法按预期工作(它们无法动态响应新消费者)。如果advisorySupport 被禁用,则完全静态配置的网络是唯一的选择。在下一节中阅读有关它的更多信息

因此,这是否意味着<amq:queue physicalName=">"/>声明的 inconnectorA将只接收它自己的代理内的队列上的消息,而不是整个集群?

如果不是,(因为这似乎与我看到的结果不一致)解释这种组合的正确方法是什么?

  • 同样,鉴于经纪人有advisorySupport='false'这是否会阻止我添加一个dynamicallyIncludedDestinations部分connectorB

  • 如果我向 发送消息jms:topic:topicC,是否正确地说,接收消息的唯一消费者是在发送消息的代理上订阅的消费者?

4

1 回答 1

2

在关闭咨询支持的情况下,您关闭了创建动态网络的所有功能,因为代理无法传播有关目的地的消息需求的信息。因此,在这种情况下,您的 connectorA 没有多大意义。

于 2012-04-04T09:03:40.597 回答