6.4. 관리 작업


AMQ Broker를 관리하기 위해 Cryostat 또는 JMS 메시지를 사용하든 동일한 API 관리 작업을 사용할 수 있습니다. 관리 API를 사용하면 브로커, 주소 및 대기열을 관리할 수 있습니다.

6.4.1. 브로커 관리 작업

관리 API를 사용하여 브로커를 관리할 수 있습니다.

대기열 나열, 생성, 배포 및 제거

배포된 큐 목록은 getQueueNames() 메서드를 사용하여 검색할 수 있습니다.

ActiveMQServerControl 에서 관리 작업 createQueue(), deployQueue() 또는 destroyQueue() 를 사용하여( ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" 또는 리소스 이름 서버)를 사용하여 큐를 생성하거나 삭제할 수 있습니다.

deployQueue 는 아무 작업도 수행하지 않는 동안 큐가 이미 존재하는 경우 CreateQueue가 실패합니다.

대기열 일시 중지 및 다시 시작
QueueControl 는 기본 큐를 일시 중지하고 재개할 수 있습니다. 큐가 일시 중지되면 메시지를 수신하지만 전달되지 않습니다. 다시 시작되면 대기 중인 메시지(있는 경우)가 전송되기 시작합니다.
원격 연결 나열 및 종료

listRemoteAddresses() 를 사용하여 클라이언트의 원격 주소를 검색합니다. closeConnectionsForAddress() 메서드를 사용하여 원격 주소와 연결된 연결을 닫을 수도 있습니다.

또는 listConnectionIDs() 를 사용하여 연결 ID를 나열하고 listSessions() 를 사용하여 지정된 연결 ID의 모든 세션을 나열합니다.

트랜잭션 관리

브로커가 충돌하는 경우 브로커가 다시 시작되면 일부 트랜잭션에 수동 개입이 필요할 수 있습니다. 다음 방법을 사용하여 발생하는 문제를 해결합니다.

준비 상태에 있는 트랜잭션을 나열합니다(Transaction은 listPreparedTransactions() 메서드 목록을 사용하여 opaque Base64 Strings로 표시됩니다.

commitPreparedTransaction() 또는 rollbackPreparedTransaction() 을 사용하여 지정된 준비된 트랜잭션을 커밋하거나 롤백하여 추론 트랜잭션을 해결합니다.

listHeuristicCommittedTransactions()listHeuristicRolledBackTransactions 메서드를 사용하여 논리적으로 완료된 트랜잭션을 나열합니다.

메시지 카운터 활성화 및 재설정

enableMessageCounters() 또는 disableMessageCounters() 메서드를 사용하여 메시지 카운터를 활성화 및 비활성화합니다.

resetAllMessageCounters()resetAllMessageCounterHistories() 메서드를 사용하여 메시지 카운터를 재설정합니다.

브로커 구성 및 속성 검색
ActiveMQServerControl 은 모든 속성(예: 브로커의 버전을 검색하는 getVersion() 메서드)을 통해 브로커 구성을 노출합니다.
코어 브리지 및 다이버트 나열, 생성 및 제거

getBridgeNames()getDivertNames() 메서드를 각각 사용하여 배포된 코어 브리지 및 다이버트를 나열합니다.

createBridge()destroyBridge() 또는 createDivert()ActiveMQServerControl ( ObjectName org.activemq.artemis:broker="BROKER_NAME" 또는 리소스 이름 서버)를 사용하여 브리지 및 다이버트를 사용하여 생성 또는 삭제합니다.

브로커를 중지하고 현재 연결된 클라이언트에서 장애 조치(failover)를 적용

ActiveMQServerControl 에서 forceFailover() 를 사용합니다( ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" 또는 리소스 이름 서버)

참고

이 방법은 브로커를 실제로 중지하므로 오류가 발생할 수 있습니다. 정확한 오류는 메서드를 호출하는 데 사용한 관리 서비스에 따라 달라집니다.

6.4.2. 주소 관리 작업

관리 API를 사용하여 주소를 관리할 수 있습니다.

AddressControl 클래스와 함께 ObjectName org.apache.activemq.artemis:broker=" <broker-name> ", component=addresses,address=" <address-name> " 또는 리소스 이름 주소를 사용하여 주소를 관리합니다.

addRole() 또는 removeRole() 메서드를 사용하여 주소에 대한 역할 및 권한을 수정합니다. getRoles() 메서드를 사용하여 큐와 연결된 모든 역할을 나열할 수 있습니다.

6.4.3. 대기열 관리 작업

관리 API를 사용하여 대기열을 관리할 수 있습니다.

코어 관리 API는 큐를 처리합니다. QueueControl 클래스는 큐 관리 작업을 정의합니다 ( ObjectName,org.apache.activemq.artemis:broker=" <broker-name> ",component=addresses,address=" <bound-address> ",subcomponent=queues,routing-type> ", queue=" <queue-name> " 또는 리소스 이름 대기열. <queue-name>).

큐에 대한 대부분의 관리 작업에서는 단일 메시지 ID(예: 단일 메시지를 제거하는 경우) 또는 필터(예: 지정된 속성을 사용하여 모든 메시지를 만료)를 사용합니다.

dead letter address로 전송, 전송, 메시지 이동

expireMessages() 메서드를 사용하여 큐에서 메시지를 만료합니다. 만료 주소가 정의되면 메시지가 이 주소로 전송되고, 그렇지 않으면 삭제됩니다. broker.xml 구성 파일의 address-settings 요소에서 주소 또는 주소 집합 (및 해당 주소에 바인딩된 큐)의 만료 주소를 정의할 수 있습니다. 예를 들어 기본 브로커 구성 이해 의 "기본 메시지 주소 설정" 섹션을 참조하십시오.

sendMessagesToDeadLetterAddress() 메서드를 사용하여 dead letter 주소로 메시지를 보냅니다. 이 메서드는 dead letter 주소로 전송된 메시지 수를 반환합니다. dead letter address가 정의되면 메시지가 이 주소로 전송됩니다. 그렇지 않으면 큐에서 제거되고 삭제됩니다. broker.xml 구성 파일의 address-settings 요소에서 주소 또는 주소 집합 (및 해당 주소에 바인딩된 큐)에 대한 dead letter 주소를 정의할 수 있습니다. 예를 들어 기본 브로커 구성 이해 의 "기본 메시지 주소 설정" 섹션을 참조하십시오.

moveMessages() 메서드를 사용하여 한 큐에서 다른 큐로 메시지를 이동합니다.

메시지 나열 및 제거

listMessages() 메서드를 사용하여 큐의 메시지를 나열합니다. 각 메시지에 대해 Map 의 배열, 하나의 Map 을 반환합니다.

단일 메시지 ID 변형에 대한 부울 또는 필터 변형에 대한 제거된 메시지 수를 반환하는 removeMessages() 메서드를 사용하여 큐에서 메시지를 제거합니다. 이 메서드는 필터 인수를 사용하여 필터링된 메시지만 제거합니다. 필터를 빈 문자열로 설정하면 모든 메시지가 제거됩니다.

메시지 계산
큐의 메시지 수는 getMessageCount() 메서드에서 반환합니다. 또는 countMessages() 는 지정된 필터와 일치하는 큐의 메시지 수를 반환합니다.
메시지 우선 순위 변경
단일 메시지 ID 변형에 대한 부울 또는 필터 변형에 대한 업데이트된 메시지 수를 반환하는 changeMessagesPriority() 메서드를 사용하여 메시지 우선 순위를 변경할 수 있습니다.
메시지 카운터
메시지 카운터는 listMessageCounter()listMessageCounterHistory() 메서드를 사용하여 큐에 대해 나열할 수 있습니다( 6.6절. “메시지 카운터 사용”참조). resetMessageCounter() 메서드를 사용하여 단일 큐에 대해 메시지 카운터를 재설정할 수도 있습니다.
큐 속성 검색
QueueControl 는 해당 특성을 통해 큐 설정을 노출합니다(예: getFilter() 를 사용하여 큐가 생성된 경우 큐의 필터를 검색하고, isDurable() 을 사용하여 큐가 관리되는지 여부를 확인할 수 있습니다.).
대기열 일시 중지 및 다시 시작
QueueControl 는 기본 큐를 일시 중지하고 재개할 수 있습니다. 큐가 일시 중지되면 메시지를 수신하지만 전달되지 않습니다. 다시 시작되면 대기 중인 메시지(있는 경우)가 전송되기 시작합니다.

6.4.4. 원격 리소스 관리 작업

관리 API를 사용하여 브로커의 원격 리소스(acceptors, diverts, bridge 등)를 시작하고 중지하여 브로커를 완전히 중지하지 않고 지정된 기간 동안 오프라인으로 전환할 수 있습니다.

어셉터
start() 또는 를 사용하여 수락자를 시작하거나 중지합니다. AcceptorControl 클래스의 stop() 메서드( ObjectName org.apache.activemq.artemis:broker=" <broker-name> ",component=acceptors,name=" <acceptor-name> " 또는 리소스 이름수락자). Acceptor 매개변수는 AcceptorControl 특성을 사용하여 검색할 수 있습니다. Acceptors에 대한 자세한 내용은 네트워크 연결: 수락자 및 커넥터 를 참조하십시오.
다이버
DivertControl 클래스에서 start() 또는 stop() 메서드를 사용하여 시작 또는 중지( ObjectName org.apache.activemq.artemis:broker=" <broker-name> ",component=diverts,name=" < divert-name>). 다양한 매개변수는 DivertControl 특성을 사용하여 검색할 수 있습니다.
브리지
start() (resp)를 사용하여 브리지를 시작하거나 중지합니다. BridgeControl 클래스의 stop()메서드( ObjectName org.apache.activemq.artemis:broker=" <broker-name> ",component=bridge,name=" <bridge-name> " 또는 리소스 이름 브리지). Bridge 매개변수는 BridgeControl 특성을 사용하여 검색할 수 있습니다.
브로드캐스트 그룹
BroadcastGroupControl 클래스에서 start() 또는 stop() 메서드를 사용하여 브로드캐스트 그룹을 시작하거나 중지( ObjectName org.apache.activemq.artemis:broker=" <broker-name> ",component=broadcast-group,name> ",broadcast-group-name> ",broadcast-group-name> " " 또는 리소스 이름 broadcastgroup. <broadcast-group-name>). 브로드캐스트 그룹 매개변수는 BroadcastGroupControl 특성을 사용하여 검색할 수 있습니다. 자세한 내용은 Broker discovery methods 를 참조하십시오.
검색 그룹
DiscoveryGroupControl 클래스에서 start() 또는 stop() 메서드를 사용하여 검색 그룹을 시작하거나 중지( ObjectName org.apache.activemq.artemis:broker=" <broker-name> ",component=discovery-group,name> " 또는 리소스이름 discovery . <discovery-group-name> ). DiscoveryGroupControl 특성을 사용하여 검색 그룹 매개 변수를 검색할 수 있습니다. 자세한 내용은 Broker discovery methods 를 참조하십시오.
클러스터 연결
ClusterConnectionControl 클래스에서 start() 또는 stop() 메서드를 사용하여 클러스터 연결을 시작하거나 중지합니다( ObjectName org.apache.activemq.artemis:broker=" <broker-name>", component=cluster-connection,name=" <cluster-connection-name > 또는 리소스 이름 clusterconnection. <cluster-connection-name> ). 클러스터 연결 매개변수는 ClusterConnectionControl 특성을 사용하여 검색할 수 있습니다. 자세한 내용은 브로커 클러스터 생성 을 참조하십시오.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.