Является ли хорошая идея разбить сервис WCF на отдельные, более сплоченные сервисы? - PullRequest
1 голос
/ 23 августа 2011

У меня есть несколько различных функциональных блоков, которые необходимо реализовать в службе (или службах) WCF. Мне кажется, что разделение этих подразделений на их собственные сервисы имеет ряд преимуществ:

  • Слабая связь
  • Потенциально более надежный - неудача не может уничтожить все
  • Долгосрочная масштабируемость

Но есть расходы:

  • Больше управлять
  • Расходы на запуск дополнительных сервисов

Меня особенно интересует последняя стоимость. Перевешивают ли издержки на запуск двух сервисов преимущества, когда эти сервисы невелики (скажем, две или три очень легких операции)?

Если разбить их на части - это хорошая идея, по каким направлениям я должен провести разделение? Я мог бы разделить службы строго по функциям или по InstanceMode, или по типу хостинга (IIS v Windows). Есть ли здесь общий подход или набор советов?

Ценю любые советы.

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Разделение его на несколько сервисов не обязательно означает разделение его на несколько приложений.
Но вы также можете получить надежность и масштабируемость.

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


Дополнительно

Вы должны разбить по функциональности, это просто означает определение нескольких [ServiceContract] определений.

И вам просто нужно разделиться по типу хостинга (IIS/ WinService).

Таким образом, остается вопрос, должно ли несколько служб (например, в IIS) быть одним приложением, совместно использовать слои данных и т. Д. Это имеет некоторые краткосрочные преимущества, и службы, которые тесно связаны между собой, вероятно, следует объединять.

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

0 голосов
/ 23 августа 2011

Как и все вещи, это зависит. Лично с такими вещами, как appfabric, вы можете легко масштабировать сервисы и использовать IIS и Windows для обеспечения надежности.

Конечно, меньшая площадь поверхности хороша, но зачем, если нет метрик, которые доказывают, что она вам нужна. Сначала используйте инфраструктуру WCF.

...