2010-06-02 7 views
0

У меня есть приложение для мониторинга, которое через gui отображает статус нескольких серверов приложений. Он работает, отправив запрос статуса на сервер приложений. Сервер приложений по очереди запрашивает статус всех его компонентов, создает сообщение с ответом на состояние и отправляет это сообщение в приложение мониторинга. Приложение мониторинга записывает информацию в сообщение о состоянии в базу данных, которое, в свою очередь, отображается в графическом интерфейсе. Все приложение для мониторинга выполняется на JavaSE.Настойчивость основана на приоритете?

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

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

Возможно, это лучшее решение этой проблемы?

ответ

0

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

Я не знаю, какая информация находится в сообщениях о состоянии и каковы требования. Некоторые из опций:

  • Сообщение о состоянии может быть (почти) идентично предыдущим состоянием сообщения. В этом случае вы можете только сохранить новые сообщения или только отличия.
  • Держите больше (недавние) сообщений в памяти и только сохраняется каждая минута/10 секунд и т.д.
  • Марка сохраняющегося в базе более эффективной . Возможно, вы можете уменьшить индексы или ограничения . Вы также можете попробовать дозировать большое количество статуса отчетов (и, возможно, сохранить их в памяти для пользовательского интерфейса до тех пор, пока партия не будет сохранена).
  • Уменьшить количество сообщений отчета о состоянии. Возможно, некоторые компоненты могут быть отправлены по почте реже.
+0

Спасибо за ваш ответ. В вашем первом пункте вы правы. Многие отправленные данные никогда не меняются. Для этого я создал метод на сервере приложений, который будет сравнивать свой предыдущий статус msg с его текущим и отправить приложению мониторинга сообщение о статусе, которое содержит только разницу. На ваш второй пункт, это не вызовет узкое место? На ваш третий пункт, я в настоящее время изучаю, но я скептически отношусь к массивному количеству ответов на состояние, которое он получает (тысячи серверов приложений, которые наблюдает приложение мониторинга). На последнем месте, это не вариант. – Vrot

Смежные вопросы