1.4. 브로커 구성 파일 모듈화
공통 구성 설정을 공유하는 여러 브로커가 있는 경우 공통 구성을 별도의 파일에 정의한 다음 이러한 파일을 각 브로커의 broker.xml
구성 파일에 포함할 수 있습니다.
브로커 간에 공유할 수 있는 가장 일반적인 구성 설정은 다음과 같습니다.
- addresses
- 주소 설정
- 보안 설정
절차
공유하려는 각
broker.xml
섹션에 대해 별도의 XML 파일을 생성합니다.각 XML 파일은
broker.xml
의 단일 섹션만 포함할 수 있습니다(예: 주소 또는 주소 설정 중 하나, 둘 다는 제외). 최상위 요소도 요소 네임스페이스(xmlns="urn:SecurityGroup: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 포함(X includession)에 대한 자세한 내용은 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
의 last-modified 타임 스탬프를 다른 변경없이 업데이트할 수 있습니다. 예를 들면 다음과 같습니다.
$ touch -m <broker_instance_dir>/etc/broker.xml
또는 관리 API를 사용하여 브로커를 강제로 다시 로드할 수 있습니다. ActiveMQServerControl
에서 관리 작업 reloadConfigurationFile()
을 사용하여 구성 파일을 다시 로드할 수 있습니다( ObjectName
org.apache.activemq.artemis:broker="BROKER_NAME"
또는 리소스 이름 서버
)
추가 리소스
- 관리 API 사용 방법에 대한 자세한 내용은 AMQ Broker 관리 에서 관리 API 사용을 참조하십시오.