Обработка файлов вне очереди, архивирование и хранение в БД - PullRequest
2 голосов
/ 18 ноября 2011

Мы будем реализовывать решение для извлечения файлов из очереди (IBM - MQ).Сообщения будут состоять из 10-20 различных XML-сообщений, которые нужно будет снять с очереди, обработать и заархивировать (сохранить).Однако, когда мы храним данные, содержащиеся в сообщениях, в БД, мы хотим сохранить исходный файл, поэтому FileId, сгенерированный из процесса архивирования, должен быть сохранен и сохранен с метаданными.

Iпытаюсь выяснить, что даст мне наибольшую пропускную способность?

Требования:

  1. Хранить архив файла.
  2. Сохранять проанализированные данные (не блоб xml) из сообщений.
  3. Сохраните идентификатор исходного файла из архива.
  4. Реализация решения, которое будет масштабироваться, может значительно возрасти ... в настоящее время, вероятно, 40-50 000 сообщений в час.

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

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

1 Ответ

0 голосов
/ 11 октября 2012
  1. Работа с администраторами баз данных для настройки операций записи в базу данных.
  2. Проверка нескольких операций чтения и проверка увеличения пропускной способности.

По моим наблюдениям, вам потребуетсяиметь несколько читателей, но количество будет зависеть от множества факторов.Проверьте это и посмотрите, что такое ставки.

...