19.5. AMQ Broker 플러그인 지원


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

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

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

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

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

19.5.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>
Copy to Clipboard Toggle word wrap

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

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

Configuration config = new ConfigurationImpl();

config.registerBrokerPlugin(new UserPlugin());
Copy to Clipboard Toggle word wrap

19.5.4. 특정 이벤트 로깅

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

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

Expand
표 19.2. LoggingActiveMQServerPlugin 플러그인 속성

속성

설명

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>
Copy to Clipboard Toggle word wrap

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

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

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat