검색

18.7. AMQ Broker 플러그인 지원

download PDF

AMQ는 사용자 정의 플러그인을 지원합니다. 플러그인을 사용하여 디버그 로그를 통해서만 사용할 수 있는 다양한 이벤트 유형에 대한 정보를 기록할 수 있습니다. 여러 플러그인을 함께 등록, 연결 및 실행할 수 있습니다. 플러그인은 등록 순서에 따라 실행됩니다. 즉, 등록된 첫 번째 플러그인은 항상 먼저 실행됩니다.

사용자 지정 플러그인을 생성하고 ActiveMQServerPlugin 인터페이스를 사용하여 구현할 수 있습니다. 이 인터페이스를 사용하면 플러그인이 classpath에 있고 브로커에 등록됩니다. 모든 인터페이스 메서드가 기본적으로 구현되므로 구현해야 하는 필수 동작만 추가해야 합니다.

18.7.1. 클래스 경로에 플러그인 추가

관련 .jar 파일을 <broker _instance_dir> /lib 디렉터리에 추가하여 사용자 정의 생성 브로커 플러그인을 브로커 런타임에 추가합니다.

임베디드 시스템을 사용하는 경우 포함된 애플리케이션의 일반 클래스 경로에 .jar 파일을 배치합니다.

18.7.2. 플러그인 등록

broker.xml 구성 파일에 broker-plugins 요소를 추가하여 플러그인을 등록해야 합니다. 속성 하위 요소를 사용하여 플러그인 구성 값을 지정할 수 있습니다. 이러한 속성은 플러그인이 인스턴스화된 후 플러그인의 init(Map<String, String>) 작업으로 읽고 전달됩니다.

<broker-plugins>
   <broker-plugin class-name="some.plugin.UserPlugin">
      <property key="property1" value="val_1" />
      <property key="property2" value="val_2" />
   </broker-plugin>
 </broker-plugins>

18.7.3. 프로그래밍 방식으로 플러그인 등록

플러그인을 프로그래밍 방식으로 등록하려면 registerBrokerPlugin() 메서드를 사용하여 플러그인의 새 인스턴스를 전달합니다. 아래 예제에서는 UserPlugin 플러그인 등록을 보여줍니다.

Configuration config = new ConfigurationImpl();

config.registerBrokerPlugin(new UserPlugin());

18.7.4. 특정 이벤트 로깅

기본적으로 AMQ 브로커는 특정 브로커 이벤트를 기록하기 위해 LoggingActiveMQServerPlugin 플러그인을 제공합니다. LoggingActiveMQServerplugin 플러그인은 기본적으로 주석 처리되어 있으며 정보를 기록하지 않습니다.

다음 표에서는 각 플러그인 속성에 대해 설명합니다. 이벤트를 기록하려면 구성 속성 값을 true 로 설정합니다.

속성

설명

LOG_CONNECTION_EVENTS

연결이 생성되거나 삭제될 때 정보를 기록합니다.

LOG_SESSION_EVENTS

세션을 만들거나 닫을 때 정보를 기록합니다.

LOG_CONSUMER_EVENTS

소비자가 생성 또는 닫을 때 정보를 기록합니다.

LOG_DELIVERING_EVENTS

메시지가 소비자에게 전달되고 메시지가 소비자가 승인할 때 정보를 기록합니다.

LOG_SENDING_EVENTS

메시지가 주소로 전송되었을 때 및 메시지가 브로커 내에서 라우팅될 때 정보를 기록합니다.

LOG_INTERNAL_EVENTS

큐가 생성 또는 삭제될 때, 메시지가 만료될 때, 브리지를 배포할 때, 중요한 오류가 발생할 때 정보를 기록합니다.

LOG_ALL_EVENTS

위의 모든 이벤트에 대한 정보를 기록합니다.

연결 이벤트를 기록하도록 LoggingActiveMQServerPlugin 플러그인을 구성하려면 broker.xml 구성 파일에서 < broker-plugins > 섹션의 주석을 제거합니다. 모든 이벤트의 값은 주석 처리된 기본 예제에서 true 로 설정됩니다.

<configuration ...>
...
<!-- Uncomment the following if you want to use the Standard LoggingActiveMQServerPlugin plugin to log in events -->
           <broker-plugins>
         <broker-plugin class-name="org.apache.activemq.artemis.core.server.plugin.impl.LoggingActiveMQServerPlugin">
            <property key="LOG_ALL_EVENTS" value="true"/>
            <property key="LOG_CONNECTION_EVENTS" value="true"/>
            <property key="LOG_SESSION_EVENTS" value="true"/>
            <property key="LOG_CONSUMER_EVENTS" value="true"/>
            <property key="LOG_DELIVERING_EVENTS" value="true"/>
            <property key="LOG_SENDING_EVENTS" value="true"/>
            <property key="LOG_INTERNAL_EVENTS" value="true"/>
         </broker-plugin>
      </broker-plugins>
...
</configuration>

< broker-plugins > 섹션 내에 구성 매개변수를 변경한 경우 브로커를 다시 시작하여 구성 업데이트를 다시 로드해야 합니다. 이러한 설정 변경 사항은 configuration-file-refresh-period 설정을 기반으로 다시 로드 되지 않습니다.

로그 수준이 INFO 로 설정되면 이벤트가 발생한 후 항목이 기록됩니다. 로그 수준이 DEBUG 로 설정된 경우 이벤트 전과 후에 모두 로그 항목이 생성됩니다(예: beforeCreateConsumer()afterCreateConsumer ()). 로그 수준이 DEBUG 로 설정되면 로거는 가능한 경우 알림에 대한 자세한 정보를 기록합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.