Службы данных WCF и MSMQ - PullRequest
       24

Службы данных WCF и MSMQ

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

У меня есть база данных, которая содержит таблицу заказов. Я пытаюсь создать API для наших клиентов, чтобы они могли манипулировать данными в таблице заказов. Я решил пойти по маршруту службы данных WCF, чтобы клиенты могли выполнять операции CRUD через URI.

Однако мне нужно убедиться, что эта служба данных WCF является масштабируемой и может обрабатывать большое количество запросов (1000), сделанных от нескольких клиентов. Я рассмотрел использование MSMQ со службами данных WCF, но, глядя на следующую ссылку, это кажется невозможным - Можем ли мы использовать обмен сообщениями msmq со службой передачи данных wcf .

Мой обходной путь - когда клиент пытается манипулировать данными (не выбирает), вместо того, чтобы ждать сохранения изменений в БД, мы добавляем запрос в MSMQ. Это делается путем переопределения метода SaveChanges () в ORM и извлечения изменений, сериализации их в MSMQ, а затем возврата клиенту. Затем отдельный поток извлечет объекты из MSMQ и сохранит изменения в БД.

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

1 Ответ

0 голосов
/ 13 ноября 2012

Любая автономная обработка обычно синхронной операции может повлечь за собой эту проблему.

Это одна из проблем, возникающих при реализации шаблона CQRS, который пытается разделить операции чтения и записи. Это было названо возможная последовательность .

На самом деле существует много разных способов решения этой проблемы - взгляните на эти ссылки:

CQRS - окончательная согласованность

Рекомендации GUI для возможной согласованности?

...