首页 文章

NServiceBus分发工作程序创建一个名为PRIVATE $ \ order_queue $的队列

提问于
浏览
1

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

'DIRECT = TCP:xx.xx.xx.xx \ PRIVATE $ \ order_queue $当队列应该被称为'DIRECT = OS:WORKERDNSNAME \ private $ \ myqueue' .

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

1 回答

  • 2

    来自pg2e.blogspot.co.uk的旧帖子的无耻拷贝:

    来自专用网络的HTTP上的事务队列当从没有公共IP地址的服务器通过http / s向事务队列发送消息时,ACK消息可能很难到达目的地 . 这是由于与此帖中相同的原因(基本上NAT会导致与消息目标地址不匹配) . 默认情况下,收据将发送到发送计算机名称,除非双方驻留在同一网络上,否则这些名称当然不起作用 . 要解决此问题,您必须将收据映射到发件人的公共地址 . 这是通过在C:\ WINDOWS \ system32 \ msmq \ mapping中创建具有以下内容的xml文件(任何名称)来完成的 . <StreamReceiptSetup xmlns =“msmq-streamreceipt-mapping.xml”>
    <安装>
    <逻辑地址> http://msmq.domain.com/* </逻辑地址>
    <StreamReceiptURL> HTTP:// [ADDRESS_TO_SENDER] / MSMQ /私人$ / order_queue $ </ StreamReceiptURL>
    </设置>
    <默认>的http://xxx.xx.xxx.xx/msmq/Private$/order_queue$ </默认>
    </ StreamReceiptSetup>
    说明:发送到msmq.domain.com上任何队列的所有消息都将其收据发送到给定的StreamReceiptURL . order_queue $ queue用于处理事务控制消息 .

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

相关问题