4.2. Operator 기반 브로커 배포를 위한 주소 및 큐 구성
Operator 기반 브로커 배포의 경우 두 개의 별도의 CR(사용자 정의 리소스) 인스턴스를 사용하여 주소 및 대기열 및 관련 설정을 구성합니다.
브로커에서 주소 및 큐를 생성하려면 주소 CRD(Custom Resource Definition)를 기반으로 CR 인스턴스를 배포합니다.
-
OpenShift CLI(명령줄 인터페이스)를 사용하여 Operator를 설치하는 경우 CRD는 다운로드 및 추출한 Operator 설치 아카이브의
deploy/crds에 포함된broker_activemqartemisaddress_crd.yaml파일입니다. -
OperatorHub를 사용하여 Operator를 설치한 경우 주소 CRD는 OpenShift Container Platform 웹 콘솔의
에 나열된 ActiveMQArtemisAddressCRD입니다.
-
OpenShift CLI(명령줄 인터페이스)를 사용하여 Operator를 설치하는 경우 CRD는 다운로드 및 추출한 Operator 설치 아카이브의
그런 다음 특정 주소와 일치하는 주소 및 큐 설정을 구성하려면 브로커 배포를 생성하는 데 사용되는 기본 CR(사용자 정의 리소스) 인스턴스에 구성을 포함합니다.
-
OpenShift CLI를 사용하여 Operator를 설치하는 경우 주요 브로커 CRD는 다운로드 및 추출한 Operator 설치 아카이브의
deploy/crds에 포함된broker_activemqartemis_crd.yaml파일입니다. -
OperatorHub를 사용하여 Operator를 설치하는 경우 기본 브로커 CRD는 OpenShift Container Platform 웹 콘솔의
에 나열된 ActiveMQArtemisCRD입니다.
일반적으로 OpenShift Container Platform의 브로커 배포에 대해 구성할 수 있는 주소 및 큐 설정은 Linux 또는 Windows의 독립 실행형 브로커 배포 와 완전히 동일합니다. 그러나 이러한 설정이 구성된 방법 의 몇 가지 차이점이 있습니다. 이러한 차이점은 다음 섹션에서 설명합니다.
-
OpenShift CLI를 사용하여 Operator를 설치하는 경우 주요 브로커 CRD는 다운로드 및 추출한 Operator 설치 아카이브의
4.2.1. OpenShift와 독립 실행형 브로커 배포 간의 주소 및 대기열 설정 구성의 차이점 링크 복사링크가 클립보드에 복사되었습니다!
-
OpenShift Container Platform에서 브로커 배포에 대한 주소 및 큐 설정을 구성하려면 브로커 배포의 기본 CR(사용자 정의 리소스) 인스턴스의
address>-< 섹션에 구성을 추가합니다. 이는 Linux 또는 Windows의 독립 실행형 배포와 대조되며,broker.xml구성 파일의address-settings요소에 구성을 추가합니다. 구성 항목 이름에 사용되는 형식은 OpenShift Container Platform 및 독립 실행형 브로커 배포마다 다릅니다. OpenShift Container Platform 배포의 경우 구성 항목 이름은 camel 케이스에 있습니다(예:
defaultQueueRoutingType). 대조적으로 독립 실행형 배포의 구성 항목 이름은 소문자이며 대시(-) 구분자(예:default-queue-routing-type)를 사용합니다.다음 표에서는 이 이름 차이의 몇 가지 추가 예를 보여줍니다.
Expand 독립 실행형 브로커 배포를 위한 구성 항목 OpenShift 브로커 배포를 위한 구성 항목 address-full-policy
addressFullPolicy
auto-create-queues
autoCreateQueues
default-queue-routing-type
defaultQueueRoutingType
last-value-queue
lastValueQueue
추가 리소스
OpenShift Container Platform 브로커 배포에 대한 주소 및 큐 및 일치하는 설정 생성 예는 다음을 참조하십시오.
- OpenShift Container Platform 브로커 배포의 주소, 큐 및 주소 설정에 대한 모든 구성 옵션에 대한 자세한 내용은 8.1절. “사용자 정의 리소스 구성 참조” 을 참조하십시오.
- 독립 실행형 브로커 배포의 주소, 큐 및 관련 주소 설정 구성에 대한 포괄적인 내용은 AMQ Broker 구성의 주소 및 대기열 구성을 참조하십시오. 이 정보를 사용하여 OpenShift Container Platform에서 브로커 배포에 대해 동등한 구성을 생성할 수 있습니다.
4.2.2. Operator 기반 브로커 배포를 위한 주소 및 큐 생성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 CR(사용자 정의 리소스) 인스턴스를 사용하여 Operator 기반 브로커 배포에 주소 및 관련 큐를 추가하는 방법을 보여줍니다.
브로커 배포에서 여러 주소 및/또는 큐를 생성하려면 각각의 경우 새 주소 및/또는 큐 이름을 지정하여 별도의 CR 파일을 생성하고 개별적으로 배포해야 합니다. 또한 각 CR 인스턴스의 name 속성은 고유해야 합니다.
사전 요구 사항
브로커에서 주소 및 큐를 생성하는 데 필요한 전용 CRD(Custom Resource Definition)를 포함하여 AMQ Broker Operator를 이미 설치해야 합니다. Operator를 설치하는 두 가지 다른 방법에 대한 자세한 내용은 다음을 참조하십시오.
- CR 인스턴스를 사용하여 기본 브로커 배포를 생성하는 방법에 대해 잘 알고 있어야 합니다. 자세한 내용은 3.4.1절. “기본 브로커 인스턴스 배포”의 내용을 참조하십시오.
절차
사용자 정의 리소스(CR) 인스턴스 구성을 시작하여 브로커 배포의 주소 및 대기열을 정의합니다.
OpenShift 명령줄 인터페이스 사용:
브로커 배포의 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.
oc login -u <user> -p <password> --server=<host:port>
oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
다운로드 및 추출한 Operator 설치 아카이브의
deploy/crs디렉터리에 포함된broker_activemqartemisaddress_cr.yaml이라는 샘플 CR 파일을 엽니다.
OpenShift Container Platform 웹 콘솔 사용:
- 브로커 배포를 위해 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 콘솔에 로그인합니다.
-
주소 CRD를 기반으로 새 CR 인스턴스를 시작합니다. 왼쪽 창에서
를 클릭합니다. - ActiveMQArtemisAddresss CRD를 클릭합니다.
- Instances 탭을 클릭합니다.
Create ActiveMQArtemisAddress 를 클릭합니다.
콘솔에서 YAML 편집기가 열리고 CR 인스턴스를 구성할 수 있습니다.
CR의
spec섹션에서 주소, 큐 및 라우팅 유형을 정의하는 행을 추가합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 앞의 구성은
myQueue0이라는 큐와anycast라우팅 유형을 사용하여myAddress0이라는 주소를 정의합니다.참고metadata섹션에서namespace속성을 포함하고 OpenShift Container Platform 웹 콘솔을 사용하여 CR 인스턴스를 생성하는 경우에만 값을 지정해야 합니다. 지정해야 하는 값은 브로커 배포를 위한 OpenShift 프로젝트의 이름입니다.CR 인스턴스를 배포합니다.
OpenShift 명령줄 인터페이스 사용:
- CR 파일을 저장합니다.
브로커 배포를 위해 프로젝트로 전환합니다.
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow CR 인스턴스를 생성합니다.
oc create -f <path/to/address_custom_resource_instance>.yaml
$ oc create -f <path/to/address_custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift 웹 콘솔 사용:
- CR 구성을 마쳤으면 생성을 클릭합니다.
4.2.3. Operator 기반 브로커 배포의 주소 및 대기열 삭제 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 Operator 기반 브로커 배포에서 주소 및 관련 대기열을 삭제하기 위해 CR(사용자 정의 리소스) 인스턴스를 사용하는 방법을 보여줍니다.
절차
삭제할 주소 및 큐의
이름,addressName및queueName과 같은 세부 정보가 있는 주소 CR 파일이 있는지 확인합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow address CR의
spec섹션에서removeFromBrokerOnDelete속성을 추가하고true값으로 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow removeFromBrokerOnDelete속성을true로 설정하면 주소 CR을 삭제할 때 Operator에서 배포의 모든 브로커에 대한 주소 및 관련 메시지가 제거됩니다.업데이트된 주소 CR을 적용하여 삭제하려는 주소에 대한
removeFromBrokerOnDelete속성을 설정합니다.oc apply -f <path/to/address_custom_resource_instance>.yaml
$ oc apply -f <path/to/address_custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 주소 CR을 삭제하여 배포의 브로커에서 주소를 삭제합니다.
oc delete -f <path/to/address_custom_resource_instance>.yaml
$ oc delete -f <path/to/address_custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.4. Operator 기반 브로커 배포에서 구성된 주소와 일치하는 주소 설정 링크 복사링크가 클립보드에 복사되었습니다!
클라이언트에 메시지 전달이 실패하면 브로커가 메시지를 지속적으로 전달하려고 시도하지 않을 수 있습니다. 무한한 전달 시도를 방지하기 위해, dead letter 주소와 연관된 dead letter queue 를 정의할 수 있습니다. 지정된 수의 전송 시도 후 브로커는 원래 큐에서 전달되지 않은 메시지를 제거하고 구성된 dead letter 주소로 메시지를 보냅니다. 나중에 시스템 관리자는 배달 못 한 편지 대기열에서 전달되지 않은 메시지를 사용하여 메시지를 검사할 수 있습니다.
다음 예제에서는 Operator 기반 브로커 배포에 대해 배달 못 한 주소 및 대기열을 구성하는 방법을 보여줍니다. 예제에서는 다음을 수행하는 방법을 보여줍니다.
-
기본 브로커 CR(사용자 정의 리소스) 인스턴스의
addressSetting섹션을 사용하여 주소 설정을 구성합니다. - 브로커 배포의 주소에 해당 주소 설정과 일치합니다.
사전 요구 사항
-
브로커를 배포하기 위해
ActiveMQArtemisCR 인스턴스를 생성했습니다. 자세한 내용은 3.4.1절. “기본 브로커 인스턴스 배포”의 내용을 참조하십시오. - Operator가 CR 인스턴스에 지정된 구성으로 병합하거나 대체하는 기본 주소 설정 구성에 대해 잘 알고 있습니다. 자세한 내용은 4.1.1절. “Operator에서 주소 설정 구성을 생성하는 방법”의 내용을 참조하십시오.
절차
배포의 각 브로커에 대해 전달되지 않은 메시지를 수신하도록 배달 못 한 주소 및 큐를 추가하도록 주소 CR 인스턴스 구성을 시작합니다.
OpenShift 명령줄 인터페이스 사용:
브로커 배포의 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.
oc login -u <user> -p <password> --server=<host:port>
oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
다운로드 및 추출한 Operator 설치 아카이브의
deploy/crs디렉터리에 포함된broker_activemqartemisaddress_cr.yaml이라는 샘플 CR 파일을 엽니다.
OpenShift Container Platform 웹 콘솔 사용:
- 브로커 배포를 위해 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 콘솔에 로그인합니다.
-
주소 CRD를 기반으로 새 CR 인스턴스를 시작합니다. 왼쪽 창에서
를 클릭합니다. - ActiveMQArtemisAddresss CRD를 클릭합니다.
- Instances 탭을 클릭합니다.
Create ActiveMQArtemisAddress 를 클릭합니다.
콘솔에서 YAML 편집기가 열리고 CR 인스턴스를 구성할 수 있습니다.
CR의
spec섹션에서 dead letter address 및 큐를 지정하여 전달되지 않은 메시지를 수신할 행을 추가합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 앞의 구성은
myDeadLetterQueue라는 dead letter 큐와anycast라우팅 유형을 사용하여myDeadLetterAddress라는 dead letter 주소를 정의합니다.참고metadata섹션에서namespace속성을 포함하고 OpenShift Container Platform 웹 콘솔을 사용하여 CR 인스턴스를 생성하는 경우에만 값을 지정해야 합니다. 지정해야 하는 값은 브로커 배포를 위한 OpenShift 프로젝트의 이름입니다.주소 CR 인스턴스를 배포합니다.
OpenShift 명령줄 인터페이스 사용:
- CR 파일을 저장합니다.
브로커 배포를 위해 프로젝트로 전환합니다.
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 주소 CR을 생성합니다.
oc create -f <path/to/address_custom_resource_instance>.yaml
$ oc create -f <path/to/address_custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift 웹 콘솔 사용:
- CR 구성을 마쳤으면 생성을 클릭합니다.
브로커 배포의 주요 브로커 CR 인스턴스를 편집합니다.
OpenShift 명령줄 인터페이스 사용:
브로커 배포를 위해 프로젝트에 CR을 편집하고 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.
oc login -u <user> -p <password> --server=<host:port>
$ oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow CR을 편집합니다.
oc edit ActiveMQArtemis <CR instance name> -n <namespace>
oc edit ActiveMQArtemis <CR instance name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift Container Platform 웹 콘솔 사용:
- 브로커 배포를 위해 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 콘솔에 로그인합니다.
-
왼쪽 창에서
를 클릭합니다. - Red Hat Integration - AMQ Broker for RHEL 8 (Multiarch) operator를 클릭합니다.
- AMQ Broker 탭을 클릭합니다.
- ActiveMQArtemis 인스턴스 이름의 이름을 클릭합니다.
YAML 탭을 클릭합니다.
콘솔에서 YAML 편집기가 열리고 CR 인스턴스를 편집할 수 있습니다.
참고metadata섹션에서namespace속성을 포함하고 OpenShift Container Platform 웹 콘솔을 사용하여 CR 인스턴스를 생성하는 경우에만 값을 지정해야 합니다. 지정해야 하는 값은 브로커 배포를 위한 OpenShift 프로젝트의 이름입니다.
CR의
spec섹션에서 다음과 같이 단일addressSetting섹션이 포함된 새address>-< 섹션을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow match속성의 단일 인스턴스를addressSetting블록에 추가합니다. address-matching 표현식을 지정합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow match-
브로커가 다음 구성을 적용하는 주소 또는 주소 집합을 지정합니다. 이 예에서
match속성 값은myAddress라는 단일 주소에 해당합니다.
전달되지 않은 메시지와 관련된 속성을 추가하고 값을 지정합니다. 예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow deadLetterAddress- 브로커가 전달되지 않은 메시지를 전송하는 주소입니다.
maxDeliveryAttempts구성된 배달 주소로 메시지를 이동하기 전에 브로커가 수행하는 최대 전달 시도 횟수입니다.
위 예에서 브로커가 5번의 실패한 시도를 하는 경우
myAddress로 시작하는 주소로 메시지를 전달하려고 하면 브로커는 메시지를 지정된 dead letter 주소myDeadLetterAddress로 이동합니다.
(선택 사항) 다른 주소 또는 주소에 유사한 구성을 적용합니다. 예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서 두 번째
match속성 값에는 해시 와일드카드 문자가 포함됩니다. 와일드카드 문자는 이전 구성이myECDHEAddresses문자열로 시작하는 모든 주소에 적용됨을 나타냅니다.참고와일드카드 표현식을
match속성의 값으로 사용하는 경우, 값을 작은따옴표로 묶어야 합니다(예:'myOtherAddresses#').address>-< 섹션의 시작 부분에applyRule속성을 추가하고 값을 지정합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow applyRule속성은 Operator가 일치하는 각 주소 또는 주소 집합에 대해 CR에 추가하는 구성을 적용하는 방법을 지정합니다. 지정할 수 있는 값은 다음과 같습니다.merge_allCR 및 기본 구성에 지정된 주소 설정의 경우 동일한 주소 또는 주소 집합과 일치하는 기본 구성의 경우 다음을 수행합니다.
- 기본 구성에 지정된 속성 값을 CR에 지정된 속성 값으로 바꿉니다.
- CR 또는 기본 구성에 고유하게 지정된 속성 값을 유지합니다. 병합된 최종 구성에 각 항목을 포함합니다.
- 특정 주소 또는 주소 집합과 고유하게 일치하는 CR 또는 기본 구성에 지정된 주소 설정의 경우 최종 병합 구성에 포함합니다.
merge_replace- CR 및 동일한 주소 또는 주소 집합과 일치하는 기본 구성에 둘 다 지정된 주소 설정의 경우 최종 병합 구성에 CR 에 지정된 설정을 포함합니다. CR에 지정되지 않은 경우에도 기본 구성에 지정된 속성을 포함하지 마십시오.
- 특정 주소 또는 주소 집합과 고유하게 일치하는 CR 또는 기본 구성에 지정된 주소 설정의 경우 최종 병합 구성에 포함합니다.
replace_all- 기본 구성에 지정된 모든 주소 설정을 CR에 지정된 주소로 바꿉니다. 병합된 최종 구성은 CR에 지정된 구성과 정확히 일치합니다.
참고CR에
applyRule속성을 명시적으로 포함하지 않으면 Operator에서 기본값merge_all을 사용합니다.- CR 인스턴스를 저장합니다.
추가 리소스
- OpenShift Container Platform 브로커 배포의 주소, 큐 및 주소 설정에 대한 모든 구성 옵션에 대한 자세한 내용은 8.1절. “사용자 정의 리소스 구성 참조” 을 참조하십시오.
OpenShift CLI(명령줄 인터페이스)를 사용하여 AMQ Broker Operator를 설치한 경우 다운로드 및 추출한 설치 아카이브에는 주소 설정 구성의 몇 가지 추가 예가 포함되어 있습니다. 설치 아카이브의
deploy/examples폴더에 있는 다음을 참조하십시오.-
artemis-basic-address-settings-deployment.yaml -
artemis-merge-replace-address-settings-deployment.yaml -
artemis-replace-address-settings-deployment.yaml
-
- 독립 실행형 브로커 배포의 주소, 큐 및 관련 주소 설정 구성에 대한 포괄적인 내용은 AMQ Broker 구성의 주소 및 대기열 구성을 참조하십시오. 이 정보를 사용하여 OpenShift Container Platform에서 브로커 배포에 대해 동등한 구성을 생성할 수 있습니다.
- OpenShift Container Platform의 Init Container에 대한 자세한 내용은 OpenShift Container Platform 설명서에 Pod를 배포하기 전에 Init Container를 사용하여 작업을 수행합니다.