stringtranslate.com

Расширения управления Java

Java Management Extensions ( JMX ) — это технология Java , которая предоставляет инструменты для управления и мониторинга приложений , системных объектов, устройств (например, принтеров ) и сервисно-ориентированных сетей. Эти ресурсы представлены объектами, называемыми MBeans ( Managed Bean ). В API классы могут быть динамически загружены и инстанцированы. Управление и мониторинг приложений могут быть спроектированы и разработаны с использованием Java Dynamic Management Kit. [1]

JSR 003 [2] Java Community Process определил JMX 1.0, 1.1 и 1.2. JMX 2.0 разрабатывался в соответствии с JSR 255, но впоследствии этот JSR был отозван. [3] JMX Remote API 1.0 для удаленного управления и мониторинга определен в JSR 160. [4] Расширение JMX Remote API для веб-сервисов разрабатывалось в соответствии с JSR 262. [5]

JMX, принятый сообществом J2EE на ранней стадии , является частью J2SE с версии 5.0. «JMX» является товарным знаком Oracle Corporation .

Архитектура

Архитектура JMX

JMX использует трехуровневую архитектуру:

  1. Уровень зондов , также называемый уровнем инструментирования , содержит зонды (называемые MBeans), инструментирующие ресурсы.
  2. Уровень агента , или MBeanServer – ядро ​​JMX. Он действует как посредник между MBean и приложениями.
  3. Уровень удаленного управления позволяет удаленным приложениям получать доступ к MBeanServer через коннекторы и адаптеры. Коннектор обеспечивает полный удаленный доступ к API MBeanServer с использованием различных коммуникаций ( RMI , IIOP , JMS , WS-* …), в то время как адаптер адаптирует API к другому протоколу ( SNMP , …) или к веб-интерфейсу ( HTML / HTTP , WML / HTTP , …).

Приложения могут быть общими консолями (такими как JConsole [6] и MC4J [7] ) или приложениями, специфичными для домена (мониторинга). Внешние приложения могут взаимодействовать с MBeans с помощью коннекторов JMX и адаптеров протоколов. Коннекторы служат для соединения агента с удаленным приложением управления с поддержкой JMX. Эта форма связи включает коннектор в агенте JMX и клиент коннектора в приложении управления.

Java Platform, Standard Edition поставляется с одним коннектором, коннектором RMI , который использует протокол удаленных методов Java, являющийся частью API вызова удаленных методов Java . Это коннектор, который используют большинство приложений управления.

Адаптеры протоколов обеспечивают представление управления агентом JMX через заданный протокол. Приложения управления, которые подключаются к адаптеру протоколов, обычно специфичны для заданного протокола.

Управляемые бобы

Управляемый компонент ( иногда его просто называют MBean ) — это тип JavaBean , созданный с помощью внедрения зависимостей . Управляемые компоненты (Managed Beans) в частности используются в технологии Java Management Extensions, но с Java EE 6 спецификация предоставляет более подробное значение управляемого компонента.

MBean представляет ресурс, работающий в виртуальной машине Java , например, приложение или технический сервис Java EE (транзакционный монитор, драйвер JDBC и т. д.). Их можно использовать для сбора статистики по таким вопросам, как производительность, использование ресурсов или проблемы (pull); для получения и установки конфигураций или свойств приложения (push/pull); и уведомления о событиях, таких как сбои или изменения состояния (push).

Java EE 6 предусматривает, что управляемый компонент — это компонент, который реализуется классом Java, который называется его классом компонента. Класс Java верхнего уровня является управляемым компонентом, если он определен как управляемый компонент любой другой спецификацией технологии Java EE (например, спецификацией технологии JavaServer Faces ) или если он соответствует всем следующим условиям:

  1. Это не нестатичный внутренний класс.
  2. Это конкретный класс или аннотированный класс @Decorator.
  3. Он не аннотирован аннотацией, определяющей компонент EJB, и не объявлен как класс компонента EJB в ejb-jar.xml.

Для определения управляемого компонента не требуется специального объявления, например аннотации.

MBean может уведомлять MBeanServer о своих внутренних изменениях (для атрибутов), реализуя javax.management.NotificationEmitter. Приложение, заинтересованное в изменениях MBean, регистрирует слушателя ( javax.management.NotificationListener) на MBeanServer. Обратите внимание, что JMX не гарантирует, что слушатели получат все уведомления. [8]

Типы

Существует два основных типа MBean:

Дополнительные типы — Open MBeans , Model MBeans и Monitor MBeans . Open MBeans — это динамические MBeans, которые опираются на базовые типы данных. Они не требуют пояснений и более удобны для пользователя. Model MBeans — это динамические MBeans, которые можно настраивать во время выполнения. Также предоставляется универсальный класс MBean для динамической настройки ресурсов во время выполнения программы.

MXBean ( Platform MBean ) — это особый тип MBean, который реализует подсистемы виртуальной машины Java , такие как сборка мусора , JIT-компиляция , пулы памяти , многопоточность и т. д.

MLet ( Management applet ) — это утилита MBean для загрузки, создания экземпляра и регистрации MBeans в MBeanServer из XML- описания. Формат XML-дескриптора: [9]

<КОД MLET = ''класс'' | ОБЪЕКТ = ''serfile'' АРХИВ = ''СписокАрхива'' [CODEBASE = ''URL_codebase''] [ИМЯ = ''ИмяОбъекта''] [ВЕРСИЯ = ''версия''] > [список арг] </МЛЕТ>

Поддерживать

JMX поддерживается на разных уровнях разными поставщиками:

Смотрите также

Ссылки

  1. ^ "Обзор Java Dynamic Management Kit". docs.oracle.com . Получено 12 января 2021 г. .
  2. ^ JSR 003: Спецификация расширений управления JavaTM (JMXTM)
  3. ^ JSR 255: Спецификация расширений управления JavaTM (JMXTM), версия 2.0
  4. ^ JSR 160: Удаленный API расширений управления JavaTM (JMX)
  5. ^ JSR 262: Коннектор веб-служб для агентов Java Management Extensions (JMX)
  6. ^ Использование JConsole для мониторинга приложений
  7. ^ "Проект MC4J создает программное обеспечение для управления серверами приложений J2EE и другими приложениями Java". Архивировано из оригинала 2007-03-23 ​​. Получено 2006-08-27 .
  8. ^ Расширения управления Java (JMX) – Лучшие практики
  9. ^ «MLet (платформа Java 2 SE 5.0)» . Сан Микросистемс . Проверено 22 июня 2008 г.
  10. ^ UnboundID Corp. Архивировано 2012-03-06 на Wayback Machine
  11. ^ «Главная».
  12. ^ "Сбор данных JMX". www.logicmonitor.com . Получено 20.11.2020 .
  13. ^ Apache Tomcat 6.0: Мониторинг и управление Tomcat (руководство по Tomcat)
  14. ^ "JMX Exporter". GitHub . 14 февраля 2022 г.

Дальнейшее чтение

Статьи

Книги

Внешние ссылки