1.4. 브로커 구성 파일 수정
공통 구성 설정을 공유하는 브로커가 여러 개인 경우 별도의 파일에 공통 구성을 정의한 다음 각 브로커의 broker.xml
구성 파일에 이러한 파일을 포함시킬 수 있습니다.
브로커 간에 공유할 수 있는 가장 일반적인 구성 설정은 다음과 같습니다.
- 주소
- 주소 설정
- 보안 설정
절차
공유하려는 각
broker.xml
섹션에 대해 별도의 XML 파일을 생성합니다.각 XML 파일에는
broker.xml
의 단일 섹션만 포함할 수 있습니다(예: 주소 또는 주소 설정, 둘 다는 아님). 최상위 수준 요소는 요소 네임스페이스(xmlns="urn:activemq:core"
)도 정의해야 합니다.이 예에서는
my-security-settings.xml
에 정의된 보안 설정 구성을 보여줍니다.my-security-settings.xml
<security-settings xmlns="urn:activemq:core"> <security-setting match="a1"> <permission type="createNonDurableQueue" roles="a1.1"/> </security-setting> <security-setting match="a2"> <permission type="deleteNonDurableQueue" roles="a2.1"/> </security-setting> </security-settings>
-
공통 구성 설정을 사용해야 하는 각 브로커에 대해 <
broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. 개설한 각
broker.xml
파일에 대해 다음을 수행하십시오.broker.xml
시작 부분에 있는 <configuration
> 요소에서 다음 행이 표시되는지 확인합니다.xmlns:xi="http://www.w3.org/2001/XInclude"
공유 구성 설정이 포함된 각 XML 파일에 대해 XML 포함을 추가합니다.
이 예제에는
my-security-settings.xml
파일이 포함되어 있습니다.broker.xml
<configuration ...> <core ...> ... <xi:include href="/opt/my-broker-config/my-security-settings.xml"/> ... </core> </configuration>
필요한 경우
broker.xml
의 유효성을 검사하여 XML이 스키마에 대해 유효한지 확인합니다.XML 검증기를 사용할 수 있습니다. 이 예제에서는
xmllint
를 사용하여artemis-server.xsl
스키마에 대해broker.xml
의 유효성을 검사합니다.$ xmllint --noout --xinclude --schema /opt/redhat/amq-broker/amq-broker-7.2.0/schema/artemis-server.xsd /var/opt/amq-broker/mybroker/etc/broker.xml /var/opt/amq-broker/mybroker/etc/broker.xml validates
추가 리소스
- XML 포함(XIncludes)에 대한 자세한 내용은 https://www.w3.org/TR/xinclude/ 을 참조하십시오.
1.4.1. 모듈식 구성 파일 다시 로드
브로커가 구성 변경 사항(config -file-refresh-period
로 지정된 빈도에 따라) 주기적으로 확인하면 xi:include
를 통해 broker.xml
구성 파일에 포함된 구성 파일에 대한 변경 사항을 자동으로 감지하지 않습니다. 예를 들어 broker.xml
에 my-address-settings.xml
이 포함되어 있고 my-address-settings.xml
설정을 변경하는 경우 브로커는 my-address-settings.xml
의 변경 사항을 자동으로 탐지하고 구성을 다시 로드하지 않습니다.
broker.xml
구성 파일 및 여기에 포함된 수정된 구성 파일을 강제로 다시 로드하려면 broker.xml
구성 파일의 "최종 수정됨" 타임 스탬프가 변경되었는지 확인해야 합니다. 표준 Linux touch
명령을 사용하여 다른 변경없이 broker.xml
의 마지막 수정 타임 스탬프를 업데이트할 수 있습니다. 예를 들면 다음과 같습니다.
$ touch -m <broker_instance_dir>/etc/broker.xml
또는 관리 API를 사용하여 브로커를 강제로 다시 로드할 수 있습니다. 구성 파일은 ActiveMQServerControl
의 관리 작업 reloadConfigurationFile()
을 사용하여 다시 로드할 수 있습니다( ObjectName
org.apache.activemq.artemis:broker="BROKER_NAME"
또는 리소스 이름 서버
)
추가 리소스
- 관리 API 사용 방법에 대한 자세한 내용은 AMQ Broker 관리에서 관리 API 사용을 참조하십시오.