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>) 작업에 읽고 전달됩니다.
19.5.3. 프로그래밍 방식으로 플러그인 등록 링크 복사링크가 클립보드에 복사되었습니다!
플러그인을 프로그래밍 방식으로 등록하려면 registerBrokerPlugin()
메서드를 사용하고 플러그인의 새 인스턴스를 전달합니다. 아래 예제에서는 UserPlugin
플러그인의 등록을 보여줍니다.
Configuration config = new ConfigurationImpl(); config.registerBrokerPlugin(new UserPlugin());
Configuration config = new ConfigurationImpl();
config.registerBrokerPlugin(new UserPlugin());
19.5.4. 특정 이벤트 로깅 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 AMQ 브로커는 특정 브로커 이벤트를 로깅하기 위해 LoggingActiveMQServerPlugin
플러그인을 제공합니다. LoggingActiveMQServerplugin
플러그인은 기본적으로 주석 처리되며 정보를 기록하지 않습니다.
다음 표에서는 각 플러그인 속성에 대해 설명합니다. 이벤트를 기록하려면 구성 속성 값을 true
로 설정합니다.
속성 | 설명 |
| 연결이 생성되거나 삭제될 때 정보를 기록합니다. |
| 세션이 생성되거나 닫힐 때 정보를 기록합니다. |
| 소비자가 생성되거나 닫힐 때 정보를 기록합니다. |
| 메시지가 소비자에게 전달될 때 그리고 소비자가 메시지를 승인할 때 정보를 기록합니다. |
| 메시지가 주소로 전송되고 브로커 내에서 메시지가 라우팅될 때 정보를 기록합니다. |
| 큐 생성 또는 삭제 시, 메시지가 만료되면 브리지가 배포되고, 심각한 오류가 발생할 때 정보를 기록합니다. |
| 위의 모든 이벤트에 대한 정보를 기록합니다. |
연결 이벤트를 기록하도록 LoggingActiveMQServerPlugin
플러그인을 구성하려면 broker.xml
구성 파일의 < broker-plugins
> 섹션의 주석을 제거합니다. 주석으로 처리된 기본 예제에서 모든 이벤트의 값이 true
로 설정됩니다.
< broker-plugins
> 섹션 내에서 구성 매개변수를 변경하는 경우 브로커를 다시 시작하여 구성 업데이트를 다시 로드해야 합니다. 이러한 구성 변경 사항은 configuration-file-refresh-period 설정에 따라 다시 로드되지 않습니다
.
로그 수준이 INFO
로 설정되면 이벤트가 발생한 후 항목이 기록됩니다. 로그 수준이 DEBUG
로 설정된 경우 이벤트 전과 후에 로그 항목이 모두 생성됩니다(예: CreateConsumer()
및 afterCreateConsumer()
). 로그 수준이 DEBUG
로 설정된 경우 로거는 사용 가능한 경우 알림에 대한 자세한 정보를 기록합니다.