Я прорабатываю первые шаги по выяснению Nservicebus и планирую достаточно крупномасштабное (по крайней мере для меня) приложение.
Я хочу, чтобы приложение могло масштабироваться на X-машинах.Он будет иметь ряд служб, таких как:
LogonService UserManagementService GameService RoomService и т. Д. *
Клиенты будут общаться с сервером через WCF.Сами сервисы будут общаться друг с другом через NServiceBus и MSMQ. Саша Барбер написал отличную статью о том, как начать работу с NServiceBus, и столкнулся с той же ситуацией, с которой я столкнусь.Об этом здесь идет еще один разговор между Уди и Сашей.
Мой вопрос: когда служба обрабатывает сообщение, как она узнает об остальном приложении в этой службе?Как говорит Саша, «обработчик будет автоматически» появляться, когда сообщение должно иметь дело с.Итак, когда он создан, как он узнает о других объектах, которые уже запущены и работают.Например, в GameService у него будет список всех игр, запущенных в данный момент.Как бы он получил к этому доступ?
Я думаю, что я могу придумать два варианта (как указал Саша):
Паттерн-посредник Синглтон
Издва, я думаю, я бы лучше зарегистрировал синглтон в Castle Windsor и использовал бы его таким образом.
Является ли это подходящим использованием шаблона Singleton (как вы часто видите людей, называющих Singleton как «Дьявола»,Я не хочу пропустить его, если это возможно).
Есть ли лучшее решение этой проблемы?
Спасибо