【问题标题】:NServiceBus distributor worker create a queue called PRIVATE$\order_queue$NServiceBus 分发器工作人员创建一个名为 PRIVATE$\order_queue$ 的队列
【发布时间】:2014-12-31 14:08:00
【问题描述】:

我创建了一个 NServiceBus Distributor 和 Worker,在不同的机器上运行。当我运行 worker 时,它成功地向 Distributor 发送了一条消息(我可以看到它通过 Storage 队列进行处理),但由于某种原因,在 Distributor 上创建了一个名为

的输出队列

'DIRECT=TCP:xx.xx.xx.xx\PRIVATE$\order_queue$什么时候应该调用队列 'DIRECT=OS:WORKERDNSNAME\private$\myqueue'。

有人知道为什么要创建 order_queue$ 吗?

【问题讨论】:

    标签: msmq nservicebus worker nservicebus-distributor


    【解决方案1】:

    直接来自pg2e.blogspot.co.uk的旧帖子的无耻复制:

    来自专用网络的 HTTP 事务队列

    当通过 http/s 从 没有公共 IP 地址的服务器,ACK 消息可能很难 到达目的地的时间。这是由于与中相同的原因 this post (基本上是 NATting 导致与消息目标地址不匹配)

    默认情况下,收据会发送到发送计算机的名称,即 除非双方都住在同一个地方,否则当然不会工作 网络。要解决此问题,您必须将收据映射到公共地址 发件人的。这是通过在 C:\WINDOWS\system32\msmq\mapping,内容如下。

    <StreamReceiptSetup xmlns="msmq-streamreceipt-mapping.xml"> 
        <setup> 
            <LogicalAddress>http://msmq.domain.com/*</LogicalAddress>
            <StreamReceiptURL>http://[ADDRESS_TO_SENDER]/msmq/Private$/order_queue$</StreamReceiptURL>
        </setup>
        <default>http://xxx.xx.xxx.xx/msmq/Private$/order_queue$</default>
    </StreamReceiptSetup>
    

    解释:发送到 msmq.domain.com 上的任何队列的所有消息都将 将他们的收据发送到给定的 StreamReceiptURL。 该 order_queue$ 队列用于处理事务控制消息。

    我怀疑更高版本的 MSMQ 或 NServiceBus 会自动处理创建此队列,而无需您自己创建 XML 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多