Постоянная подписка - PullRequest
       3

Постоянная подписка

0 голосов
/ 16 февраля 2012

Я думаю изменить существующие периодические синхронизации на основе событий и пытался найти какой-то механизм, который уже существует, но пока не работает, поэтому, возможно, некоторые из вас помогут. Я постараюсь объяснить, как, по моему мнению, это может работать, и если кто-то знает, что это где-то уже сделано, пожалуйста, дайте мне подсказки. Итак, система будет выглядеть так:

enter image description here

Теперь - интересная часть:
- Мне нужно, чтобы подписавшийся клиент получал события, даже если эти события были сгенерированы, когда он был в автономном режиме,
- но отсутствие одного клиента не должно блокировать получение событий для других клиентов.

Примером может служить электронная почта: я могу отправить электронную почту нескольким получателям, и я могу отправить второе электронное письмо тем же получателям, не дожидаясь, пока все прочитают первое, и каждый получатель получит все электронные письма, даже если они не были в сети на момент, также, если почтовый сервер выходит из строя, никто не теряет электронные письма.

Вопрос в том, поддерживает ли WCF из коробки это, если да, как будет выглядеть такая конфигурация?
Если WCF не поддерживает это, есть ли проекты с открытым исходным кодом, которые могут обработать такой сценарий?

1 Ответ

1 голос
/ 16 февраля 2012

WCF не поддерживает это из коробки.Вы можете создать шаблон pub-sub, используя WCF, об этом говорил Ювал Лоуи в 2006 , или вы можете сделать свой собственный, используя netMsmqBinding .

.фреймворк, который находится поверх MSMQ и называется NServiceBus , который очень быстро запускается и работает.Это не использует WCF однако.

ОБНОВЛЕНИЕ

В качестве отступления - приведенный выше дизайн подписки, на мой взгляд, хрупок, поскольку похоже, что вы централизуете управление / хранение подписки для всей системы,Что лучше, так это модель управления распределенной подпиской:

enter image description here

...