Если я использую только Tomcat, а сервер отключается, каковы мои варианты, чтобы приложение выглядело как запущенное? - PullRequest
2 голосов
/ 20 апреля 2011

Я рассматриваю возможность использования архитектуры только с одним сервером, который будет Tomcat (в отличие от Apache с Tomcat).

Если Tomcat выйдет из строя или выйдет из памяти, что мне делать?

  1. Предупредить меня об этом самым быстрым способом?
  2. Убедитесь, что при попытке доступа к приложению все еще есть профессионально выглядящая страница
  3. Если возможно, дайте себе некоторое время, чтобы исправить то, что произошло, и пользователи не узнают?

Ответы [ 4 ]

3 голосов
/ 20 апреля 2011
  1. Что касается мониторинга, я согласен с предложением другого автора о Nagios.Тем не менее, Hyperic - гораздо более сложное решение для мониторинга Java-программ, оно предварительно настроено для Tomcat (смотрите здесь ) и сотен других программ, так что оно определенно стоит посмотреть.Hyperic также может отправлять вам письма перед OOM сервера, отслеживая пулы памяти.
  2. Для 2 и 3 я бы поставил обратный прокси / балансировщик нагрузки перед несколькими экземплярами Tomcat с вашим приложениемсм. кластеризацию).Посмотрите на Pound , чтобы найти хорошее и легкое решение, которое также может выполнять https-упаковку, липкие сессии и многое другое.
3 голосов
/ 20 апреля 2011

Для проверки доступности услуги рекомендую использовать Nagios.

Nagios имеет плагины, которые постоянно проверяют состояние сконфигурированных сервисов и генерируют оповещения, если сервис прерывается. Оповещения могут быть смс, почта и т. Д.

1 голос
/ 20 апреля 2011

Для обслуживания страницы должен быть запущен сервер. Таким образом, типичное решение - это каким-то образом сбалансировать нагрузку. Вы можете использовать специальные балансировщики нагрузки или программную балансировку нагрузки. В любом случае идея заключается в том, что балансировщик нагрузки отслеживает ваши серверы и соответствующим образом перенаправляет пользователей. В случае, который вы описываете, балансировщик не отправляет пользователей на "отключенный" сервер. Он будет отправлять пользователей на остальные доступные серверы в кластере. Если все серверы в вашем кластере находятся в автономном режиме, балансировщик отправит пользователей в «горячий» резерв, который будет обслуживать вашу «недоступную» страницу.

Tomcat> = 5.5 поддерживает базовую балансировку нагрузки, которая называется «кластеризация». Вы можете прочитать об этом в другом месте. Но это не даст вам функциональность горячего резервирования. Популярное программное решение - Nginx . Лично я предпочел бы использовать Lighttpd в качестве программного балансировщика, но он не поддерживает липкие сессии (пока).

1 голос
/ 20 апреля 2011

Если Tomcat - это единственная вещь на сервере, которая обрабатывает HTTP-запросы (что, по-видимому, указывает на ваш вопрос), то вы не сможете показать страницу - что будет обслуживать страницу?

Полагаю, вы могли бы написать какую-нибудь сторожевую программу, которая могла бы периодически обращаться к URL-адресу на сервере Tomcat и, если он не получил ответа, сделать несколько вещей:

  • Отправить вам электронное письмо.
  • Запустите простой сервер, который обслуживает только статический HTML
  • Перезагрузка кота

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

...