spring jmx 예제

2019年8月3日

스프링 MBeanExporter개체 이름 `bean:name=testBean1`을 사용하여 MBeanServer에 MBean을 등록하려고 시도하는 시나리오를 생각해 보십시오. MBean 인스턴스가 동일한 ObjectName 아래에 이미 등록된 경우 기본 동작은 실패하고 InstanceAlreadyExistsException을 throw하는 것입니다. 스프링 구성은 매우 간단합니다: Spring JMX를 사용하면 로컬 또는 원격 MBeanServer에 등록된 MBeans로 통화를 다시 라우팅하는 프록시를 만들 수 있습니다. 이러한 프록시는 MBeans와 상호 작용할 수 있는 표준 Java 인터페이스를 제공합니다. 아래 코드는 로컬 MBeanServer에서 실행 중인 MBean에 대한 프록시를 구성하는 방법을 보여 주며, 이 예제에 대한 코드를 설정하는 Maven pom.xml입니다: 다음 소스 수준 메타데이터 유형은 Spring JMX에서 사용할 수 있습니다. 메타데이터MBeanInfo어셈블러 빈은 AnnotationJmxAttributeSource 클래스의 인스턴스로 구성되었으며 어셈블러 속성을 통해 MBeanExporter에 전달되었습니다. 이 모든 것이 스프링 에 노출된 MBeans에 대한 메타데이터 기반 관리 인터페이스를 활용하는 데 필요한 모든 것입니다. 간단한 예에서 찾을 수 있습니다… 이 시나리오에서는 JmxTestBean의 내보낸 인스턴스는 add(int, int) 작업이 호출될 때마다 NotificationEvent를 게시합니다.

JMX 관리 도구를 사용하여 예제에 연결하려면 JConsole을 사용할 수 있으며 JDK 설치와 함께 제공됩니다. IDE에서 단위 테스트에서 중단점을 설정할 수 있거나 Thread.sleep을 추가하여 응용 프로그램을 종료하지 못하도록 일시 중지할 수 있습니다. 로컬 JMX 액세스를 활성화하려면 테스트를 시작할 때 Java 인수 -Dcom.sun.management.jmxremote를 사용해야 합니다. 컨텍스트:구성 요소 스캔은 ServerManagerImpl에서 스프링 빈을 만듭니다. 컨텍스트:mbean-export 요소는 모든 부호 콩을 JMX MBeans로 등록합니다. 이 섹션은 MBeanExporter을 통해 MBeans로 노출 된 봄 관리 콩과만 관련이 있습니다. 사용자 정의 MBeans는 알림 게시에 표준 JMX API를 사용해야 합니다. 이 인터페이스는 JMX MBean의 작업 및 특성으로 노출될 메서드 및 속성을 정의합니다. 아래 코드는 이 인터페이스를 관리 인터페이스의 정의로 사용하도록 Spring JMX를 구성하는 방법을 보여 줍니다. 기본적으로 JMX에 대한 Spring의 지원은 모델 MBeans에 의존합니다(개발자가 Model MBeans를 직접 처리할 필요는 없음). 그 이유는 분명해 보입니다 – 모델 MBean은 JMX 지식이나 인식이없는 일반 Java 클래스가 JMX 인터페이스를 통해 노출 될 수 있도록합니다. 이 방법은 다른 영역에서 스프링의 동작에 적합합니다.

즉, 주변 환경에 대한 지식이 거의 없거나 전혀 없는 일반 Java 클래스를 사용한 다음 외부 구성을 통해 주변 환경까지 “와이어”하는 “봄 방식”인 것 같습니다. 이 블로그 항목에서, 나는 봄이 전혀 봄 이나 JMX 인식자바 클래스를 JMX 인터페이스를 통해 노출 할 수 있도록하는 방법과 주석을 통해 일반 자바 클래스와 약간의 땜질이 모델 MBeans의 전체 설명 능력을 가능하게하는 방법을 보여줍니다 배포할 수 있습니다. 여기서 스프링:mbean=true라고 하는 콩은 이미 유효한 JMX MBean이며 스프링에 의해 자동으로 등록됩니다. 기본적으로 JMX 등록을 위해 자동으로 검색된 빈에는 해당 빈 이름이 ObjectName으로 사용됩니다. 이 동작은 섹션 24.4, “콩에 대한 개체 이름 제어”에 자세히 설명된 대로 재정의할 수 있습니다. 봄의 JMX 제공은 JMX 알림에 대한 포괄적 인 지원이 포함되어 있습니다. 스프링 MBean 속성 및 메서드를 JMX MBean 특성 및 작업으로 자동으로 내보내는 Spring MBean 관련 주석을 사용할 예정입니다. 다음 예제에서는 JMX 콘솔을 통해 개체 작업을 원격으로 관리할 수 있는 방법을 보여 줍니다.

カテゴリー:未分類