Как мы делимся данными между двумя разными службами - PullRequest
0 голосов
/ 28 октября 2009

Я сейчас работаю над веб-сервисом, который периодически опрашивается. Он не хранит свое состояние и создается каждый раз, когда его запрашивают. По сути, он извлекает состояние других внешних объектов, например, базы данных и доставляет его обратно запрашивающей стороне.

В последнее время необходимость хранить состояние как возникшее в этом

  • Необходимо постоянно собирать данные из определенного источника и хранить важные / актуальные биты
  • Необходимо собрать совокупность определенного источника данных за период времени

Мне пришла в голову следующая идея: alt text

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

edit: Спасибо за ответы на данный момент. Извиняюсь за расплывчатость этого вопроса: просто пытаюсь решить, каков наилучший способ обмена данными между различными службами, и не уверен в специфике (то есть, что требуется). Платформа, на которой я работаю, - это платформа .NET, и обе службы являются просто службами WCF, размещенными в качестве службы Windows.

Маршрут базы данных звучит как самый обычный путь - однако я пока не хочу идти по этому пути (в основном для проблем развертывания / настройки; он вводит необходимость создания новых таблиц и т. Д. В дополнение к простой установке программное обеспечение) для передачи на данный момент относительно небольших объемов данных. Это, конечно, может измениться в будущем, и путь к базе данных может быть тем же путем.

Есть ли другой способ, кроме добавления слоя персистентности базы данных?

Ответы [ 4 ]

1 голос
/ 28 октября 2009

Если вам нужно собрать и объединить данные, вы можете рассмотреть возможность использования базы данных между двумя слоями. Или я что-то не так понял?

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

0 голосов
/ 29 октября 2009

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

Если вы начнете работать с десятками тысяч небольших файлов, ваши каталоги могут стать трудными для навигации и медленными для поиска файлов. Я обычно снимаю около 1000 - 10000 файлов в каталоге и сочиняю процедуру, которая может генерировать путь к файлу в зависимости от шаблона имени файла. Сохранение количества подкаталогов даже важно, некоторые файловые системы имеют ограничение на количество подкаталогов в родительском каталоге.

0 голосов
/ 28 октября 2009

Вы можете заменить ваши статические совместно используемые данные некоторым представлением базы данных со слоем кэширования (например, memcached) между базой данных и веб-службой, так что большую часть времени данные очень быстро доступны из кэша, но могут быть получены из базы данных по мере необходимости.

0 голосов
/ 28 октября 2009

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

...