При контроле веб-приложения Java - действительно ли JMX является правильным выбором?

У нас есть веб-приложение Java, и мы хотели бы настроить некоторый основной контроль в целях расширения этого контроля в будущем. Наш план следующие:

(1) Соберите универсальную информацию (например, память и потоки) о виртуальной машине веб-контейнера, в котором работает приложение.

(2) Контролируйте "состояние" приложения. Это довольно неопределенно, но самое меньшее мы хотели бы видеть, живо ли веб-приложение все еще и может ответить на запросы.

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

Обычно веб-приложение будет развернуто в Tomcat 5.5 или 6 средах. Быстрый бит поиска в сети показывает, что JMX может быть включен для Tomcat и что JConsole может тогда использоваться для соединения с сервером. Это дает нам большую основную информацию, которая решает точку (1). Кроме того, некоторая информация доступна в разделе MBeans "Catalina", и выполняющий развертку на этом я могу, по крайней мере, например, видеть, сколько запросов конкретный сервлет получил. Это не совсем, что мы хотим для точки (2), но по крайней мере дает нам некоторую информацию. Кажется, существует довольно большая информация там, но довольно трудно интерпретировать использование JConsole. Возможно, существует лучший инструмент для интерпретации MBeans, представленного Tomcat.

Для точки (3), кажется, на первый взгляд, что мы могли записать наш собственный MBeans и затем сделать их доступными для чего-то как JConsole. Лично, это вовлекло бы меня узнающий о JMX, который я довольно рад сделать, но у меня есть беспокойство. Осмотрев я замечаю, что большинство учебников по предмету не обновлялось в течение нескольких лет, и инструменты с открытым исходным кодом, кажется, томятся без недавних обновлений. Таким образом, моим основным вопросом является простой. Каковы Ваши мнения о JMX? Это имеет будущее или является этим / замененный чем-то еще? Учитывая у нас уже есть наше веб-приложение, но мы запускаем с нуля для консоли управления, мы должны выбрать JMX или являемся там чем-то более соответствующим с лучшим будущим перед ним?

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

Заранее спасибо,

Adam.

12
задан Adam 7 January 2010 в 21:28
поделиться

2 ответа

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

Обратите внимание, что вы можете рассмотреть возможность интеграции с любыми существующими решениями для управления (например, Nagios, BNC Patrol, HP Openview и т.д.). Они могут быть не столь Java-зависимы, но предпочитают такие тесты, как простое HTTP-соединение для тестирования, если веб-сайт не работает (простое использование Nagios), или интеграцию с помощью SNMP (что Openview говорит на родном языке).

9
ответ дан 2 December 2019 в 22:22
поделиться

Если применимо к вашей ситуации (Java 6, обновление 10 JDK или более поздняя версия, плюс на той же самой машине), то подумайте об использовании jvisualvm вместо него, так как он может копать еще глубже, чем JConsole.

Вы можете обнаружить, что самый простой способ сделать то, что вам нужно, это подключить jvisualvm, зная ваше приложение

.
1
ответ дан 2 December 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: