Проблема: как предоставить распределенный, масштабируемый и устойчивый к бедствиям паб / суб сервис с WCF.
Детали:
Обратите внимание, что этот подход рассматривается в дополнение к решениям для обмена сообщениями / промежуточного программного обеспечения, таким как Tibco EMS.
Я изучал WCF, особенно то, как он может использоваться для предложения pub / sub. На эту тему эта статья очень хороша: WCF pub-sub .
В этой статье автор пытается решить проблему наличия нескольких издателей (как это было бы с уровнем обслуживания, масштабированным по нескольким блокам). Проблема заключается в том, что если клиент A регистрируется в издателе A, но издатель B желает опубликовать событие, то издатель B не будет знать о клиенте A. То есть никто не сказал издателю B, что клиент A хочет получать уведомления о событиях. Автор предлагает паб / суб-сервис в качестве решения. Служба pub / sub будет централизованно хранить подписки. Однако, если бы я хотел сделать службу паба / подсоба устойчивой к бедствиям благодаря наличию вторичного / сдвоенного паба / подслужбы, то у меня возникла та же исходная проблема.
Итак, я думаю, что есть несколько вариантов решения проблемы:
- Хранить данные подписчика в распределенном кэше (см. Вопросы: q1 и q2 ).
- Хранить данные подписчика в базе данных / центральной файловой системе.
Может кто-нибудь придумать какие-нибудь другие решения (то есть я не пропустил какую-то фантастическую магическую особенность WCF?)
Любые комментарии приветствуются.