В настоящее время я внедряю сервис, использующий WCF, который управляет операциями с базой данных CRM.Я реализовал несколько аспектов CQRS, чтобы разделить все операции на отдельные команды и запросы.
Вопрос 1:
Некоторые из операций команды выполняют относительно простую операцию, но вызывают вторичную, частоболее дорогая операция.Я разделил эти триггеры, но они все еще выполняются в исходном потоке операций.
Я думал о том, чтобы разделить их на второй сервис WCF с односторонними операциями.Таким образом, исходная операция может немедленно вернуться, а служба «Триггер» может обрабатывать все эти вторичные операции.В настоящее время надежность не является серьезной проблемой, поэтому журналирование проблем будет достаточно, но может быть расширено в будущем.
Является ли это типичным способом обработки такого сценария?Или есть способ, которым это может быть выполнено без использования вторичной службы?
Вопрос 2:
Существуют ли существенные улучшения производительности от разделения служб WCF, подобных этой, на одном сервере?
Я думаю, что пул приложений основной службы WCF будет освобожден быстрее (хотя новые пулы будут конкурировать) с возможностью разделения дополнительных сервисов на отдельные серверы.