MSMQ,分布式拓扑,pubsub - 队列配置问题

发布于 2024-10-26 06:29:26 字数 1118 浏览 6 评论 0原文

我正在尝试使用 msmq 和 rhino.esb 设置一个 pub sub。我在一台服务器上有发布者,在另一台服务器上有订阅者。当在本地运行并将所有内容设置为 localhost 时,它工作正常。

我的问题是 - 如果这是我对本地发布者的配置:

 <facility id="rhino.esb">
            <bus threadCount="1" numberOfRetries="5" endpoint="msmq://localhost/SonaTribe.Services.Schedule.Host" />
            <messages>
                <add name="SonaTribe.Esb.Messages" endpoint="msmq://localhost/SonaTribe.Esb" />
            </messages>
        </facility>

其中总线和消息队列都是本地主机。

当它们位于不同的计算机上时,我有以下配置:

<facilities>
        <facility id="rhino.esb">
            <bus threadCount="1" numberOfRetries="5" name="schedule_host" endpoint="msmq://localhost/SonaTribe.Services.Schedule.Host" />
            <messages>
                <add name="SonaTribe.Esb.Messages" endpoint="msmq://10.0.0.164/SonaTribe.Esb" />
            </messages>
        </facility>
    </facilities>

其中一个队列是本地主机,另一个队列位于远程计算机上。这是正确的吗?

我能找到的所有示例都设置为在同一台计算机上运行 - 这有点愚蠢,因为这的全部目的是能够分发服务不是吗?

w://

I am trying to set up a pub sub using msmq and rhino.esb. I have the publisher on one server and the subscriber on the other. When running locally with everything set to localhost it works fine.

My question is this - if this is my configuration for a local publisher:

 <facility id="rhino.esb">
            <bus threadCount="1" numberOfRetries="5" endpoint="msmq://localhost/SonaTribe.Services.Schedule.Host" />
            <messages>
                <add name="SonaTribe.Esb.Messages" endpoint="msmq://localhost/SonaTribe.Esb" />
            </messages>
        </facility>

Where the bus and messages queues are both localhost.

When they are on seperate machines i have the following config:

<facilities>
        <facility id="rhino.esb">
            <bus threadCount="1" numberOfRetries="5" name="schedule_host" endpoint="msmq://localhost/SonaTribe.Services.Schedule.Host" />
            <messages>
                <add name="SonaTribe.Esb.Messages" endpoint="msmq://10.0.0.164/SonaTribe.Esb" />
            </messages>
        </facility>
    </facilities>

Where one queue is localhost and the other is on the remote machine. Is this correct?

All of the samples i can find are all setup to run on the same machine - which is a bit silly as the whole point of this is to be able to distribute the services no?

w://

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晨与橙与城 2024-11-02 06:29:26

我不是 ESB 专家,但 MSMQ 位看起来您正在使用路径名。这些需要解析为 Active Directory 中的计算机。 IP 地址无法执行此操作,因为 AD 对 IP 地址一无所知。

要使用 IP 地址,MSMQ 需要使用 DIRECT FormatName 寻址,例如:

端点地址 =“msmq.formatname:DIRECT=TCP:10.0.0.164/SonaTribe.Esb”
或者
端点地址=“msmq.formatname:DIRECT=TCP:10.0.0.164/private$/SonaTribe.Esb”

干杯
约翰·布瑞克韦尔

I'm no expert on ESB but the MSMQ bit looks like you are using pathnames. These need to resolve to a machine in Active Directory. An IP address won't work in doing this as AD knows nothing about IP addresses.

To use an IP address, MSMQ would need to use DIRECT FormatName addressing, such as:

endpoint address="msmq.formatname:DIRECT=TCP:10.0.0.164/SonaTribe.Esb"
or
endpoint address="msmq.formatname:DIRECT=TCP:10.0.0.164/private$/SonaTribe.Esb"

Cheers
John Breakwell

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文