Я использую NServiceBus 2.5 и пытаюсь получить упрощенную версию образца NServiceBus PubSub для работы с дистрибьютором.Упрощение:
- 1 Publisher
- Распространитель
- 1 Подписчик Все это на одной машине.
Я бы хотел, чтобы это сработало, прежде чем перейти к более сложным вещам, таким как несколько подписчиков за одним дистрибьютором, несколько машин и т. Д.
Сначала я получил упрощенный паб-сабпример работы без дистрибьютора (т.е. 1 паб и 1 саб - и я понял, что работает нормально).
Насколько я понимаю, он должен работать следующим образом: Дистрибьютор определяет свой собственный контроль и очереди данных.У издателя есть контрольная очередь, но никакая другая конфигурация не ссылается на эту очередь.Издатель ссылается на очередь распространения данных.Подписчик обращается к распределителям данных и контрольным очередям.
Мне не удалось заставить упрощенного распространителя pub-sub работать с этим конфигом.Я выполнил некоторую отладку издателя, и обнаружил, что у издателя Bus.Publish нет подписчиков для публикации.
Есть идеи, что я делаю неправильно и что мне нужно сделать, чтобы это работало?
Вот конфиги для каждого из них:
Publisher :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
</configSections>
<MsmqTransportConfig InputQueue="MyPublisherInputQueue" ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="MyMessages" Endpoint="distributorDataBus" />
</MessageEndpointMappings>
</UnicastBusConfig>
</configuration>
Дистрибьютор
<add key="DataInputQueue" value="distributorDataBus"/>
<add key="ControlInputQueue" value="distributorControlBus"/>
<add key="ErrorQueue" value="error"/>
<add key="StorageQueue" value="distributorStorage"/>
<add key="NameSpace" value="http://www.UdiDahan.com"/>
<!-- relevant for a Serialization of "interfaces" or "xml" -->
<add key="Serialization" value="xml"/>
<!-- can be either "xml", or "binary" -->
</appSettings>
</configuration>
Подписчик
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
</configSections>
<MsmqTransportConfig
InputQueue="Subscriber1InputQueue_1"
ErrorQueue="error"
NumberOfWorkerThreads="1"
MaxRetries="5"
/>
<UnicastBusConfig DistributorControlAddress="distributorControlBus" DistributorDataAddress="distributorDataBus">
<MessageEndpointMappings />
</UnicastBusConfig>
</configuration>