MSMQ, распределенная топология, pubsub - вопрос конфигурации очереди - PullRequest
0 голосов
/ 24 марта 2011

Я пытаюсь настроить паб, используя msmq и rhino.esb. У меня есть издатель на одном сервере и подписчик на другом. При локальном запуске со всем установленным 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>

Где одна очередь - localhost, а другая - на удаленной машине. Это правильно?

Все примеры, которые я могу найти, настроены для работы на одной и той же машине - что немного глупо, поскольку весь смысл в том, чтобы иметь возможность распределять службы, нет?

ш: //

1 Ответ

1 голос
/ 24 марта 2011

Я не эксперт по ESB, но бит MSMQ выглядит так, как будто вы используете пути.Это необходимо разрешить на машине в Active Directory.При этом не будет работать IP-адрес, так как AD ничего не знает об IP-адресах.

Чтобы использовать IP-адрес, MSMQ потребуется использовать прямую адресацию FormatName, например:

адрес конечной точки= "msmq.formatname: DIRECT = TCP: 10.0.0.164/SonaTribe.Esb" или адрес конечной точки = "msmq.formatname: DIRECT = TCP: 10.0.0.164/private$/SonaTribe.Esb"

Cheers
Джон Бруквелл

...