Множество маленьких сервисов против одного большего сервиса - PullRequest
1 голос
/ 04 ноября 2010

Мы работаем над созданием службы Windows для импорта / экспорта данных из разных мест.

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

ImportFromFoo
ImportFromFoo2
ExportToFoo
ExportToFoo2

В долгосрочной перспективе будет более 10 различных импортов / экспортов, каждый из которых будет работать в своих собственных потоках на разных таймерах. Все они слишком специфичны, чтобы их можно было сделать общими, поскольку данные отправляются и извлекаются различными способами, и для каждого импорта / экспорта выполняются различные манипуляции с данными. Что я пытаюсь выяснить, так это то, что нам лучше разделить службу, поэтому каждый импорт / экспорт живет в своем собственном сервисе.

Насколько я вижу, преимущества:

  1. Программирование / отладка будет проще, поскольку нам не нужно беспокоиться о многопоточности, и мы можем сосредоточиться на кодировании / тестировании каждого модуля в его собственной среде.
  2. Сбой в одном импорте / экспорте не повредит другие.

Минусы на самом деле просто в том, что будет больше проектов / сервисов для обслуживания.

Мне просто интересно, каково мнение других людей, и если плохое поведение считается с большим количеством маленьких услуг, а не с одним большим сервисом.

Редактировать

Все службы будут запущены на нашем сервере приложений, поэтому обслуживать их должны только мы, а не пользователь.

1 Ответ

2 голосов
/ 04 ноября 2010

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

Отдельные службы позволят вам:

  • Задать вопроспользователь, какие службы он хочет установить и который он хочет автоматически запустить при запуске в процессе установки.
  • Разрешить пользователю останавливать любые процессы, которые ему не нужны, вручную или через инструмент администратора, если он у вас есть.
  • Упрощенные пути развертывания / обновления, вы можете устанавливать новые службы, не затрагивая уже запущенные.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...