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 웹 콘솔의
에 나열된 ActiveMQAretmisAddressCRD입니다.
-
OpenShift CLI(명령줄 인터페이스)를 사용하여 Operator를 설치하는 경우 CRD는 다운로드 및 추출한 Operator 설치 아카이브의
그런 다음 특정 주소와 일치하는 주소 및 큐 설정을 구성하려면 브로커 배포를 생성하는 데 사용되는 기본 CR(사용자 정의 리소스) 인스턴스에 구성을 포함합니다.
-
OpenShift CLI를 사용하여 Operator를 설치하는 경우 주요 브로커 CRD는 다운로드 및 추출한 Operator 설치 아카이브의
deploy/crds에 포함된broker_activemqartemis_crd.yaml파일입니다. -
OperatorHub를 사용하여 Operator를 설치하는 경우 기본 브로커 CRD는 OpenShift Container Platform 웹 콘솔의
에 나열된 ActiveMQAretmisCRD입니다.
일반적으로 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>-
다운로드 및 추출한 Operator 설치 아카이브의
deploy/crs디렉터리에 포함된broker_activemqartemisaddress_cr.yaml이라는 샘플 CR 파일을 엽니다.
OpenShift Container Platform 웹 콘솔 사용:
- 브로커 배포를 위해 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 콘솔에 로그인합니다.
-
주소 CRD를 기반으로 새 CR 인스턴스를 시작합니다. 왼쪽 창에서
를 클릭합니다. - ActiveMQArtemisAddresss CRD를 클릭합니다.
- Instances 탭을 클릭합니다.
Create ActiveMQArtemisAddress 를 클릭합니다.
콘솔에서 YAML 편집기가 열리고 CR 인스턴스를 구성할 수 있습니다.
CR의
spec섹션에서 주소, 큐 및 라우팅 유형을 정의하는 행을 추가합니다. 예를 들면 다음과 같습니다.apiVersion: broker.amq.io/v1beta1 kind: ActiveMQArtemisAddress metadata: name: myAddressDeployment0 namespace: myProject spec: ... addressName: myAddress0 queueName: myQueue0 routingType: anycast ...앞의 구성은
myQueue0이라는 큐와anycast라우팅 유형을 사용하여myAddress0이라는 주소를 정의합니다.참고metadata섹션에서namespace속성을 포함하고 OpenShift Container Platform 웹 콘솔을 사용하여 CR 인스턴스를 생성하는 경우에만 값을 지정해야 합니다. 지정해야 하는 값은 브로커 배포를 위한 OpenShift 프로젝트의 이름입니다.CR 인스턴스를 배포합니다.
OpenShift 명령줄 인터페이스 사용:
- CR 파일을 저장합니다.
브로커 배포를 위해 프로젝트로 전환합니다.
$ oc project <project_name>CR 인스턴스를 생성합니다.
$ oc create -f <path/to/address_custom_resource_instance>.yaml
OpenShift 웹 콘솔 사용:
- CR 구성을 마쳤으면 생성을 클릭합니다.
(선택 사항) CR 인스턴스를 사용하여 배포에 이전에 추가된 주소 및 큐를 삭제하려면 다음 명령을 사용합니다.
$ oc delete -f <path/to/address_custom_resource_instance>.yaml
4.2.3. Operator 기반 브로커 배포에서 구성된 주소와 일치하는 주소 설정 링크 복사링크가 클립보드에 복사되었습니다!
클라이언트에 메시지 전달이 실패하면 브로커가 메시지를 지속적으로 전달하려고 시도하지 않을 수 있습니다. 무한한 전달 시도를 방지하기 위해, dead letter 주소와 연관된 dead letter queue 를 정의할 수 있습니다. 지정된 수의 전송 시도 후 브로커는 원래 큐에서 전달되지 않은 메시지를 제거하고 구성된 dead letter 주소로 메시지를 보냅니다. 나중에 시스템 관리자는 배달 못 한 편지 대기열에서 전달되지 않은 메시지를 사용하여 메시지를 검사할 수 있습니다.
다음 예제에서는 Operator 기반 브로커 배포에 대해 배달 못 한 주소 및 대기열을 구성하는 방법을 보여줍니다. 예제에서는 다음을 수행하는 방법을 보여줍니다.
-
기본 브로커 CR(사용자 정의 리소스) 인스턴스의
addressSetting섹션을 사용하여 주소 설정을 구성합니다. - 브로커 배포의 주소에 해당 주소 설정과 일치합니다.
사전 요구 사항
- CR 인스턴스를 사용하여 기본 브로커 배포를 생성하는 방법에 대해 잘 알고 있어야 합니다. 자세한 내용은 3.4.1절. “기본 브로커 인스턴스 배포”의 내용을 참조하십시오.
- Operator가 CR 인스턴스에 지정된 구성으로 병합하거나 대체하는 기본 주소 설정 구성에 대해 잘 알고 있어야 합니다. 자세한 내용은 4.1.1절. “Operator에서 주소 설정 구성을 생성하는 방법”의 내용을 참조하십시오.
절차
배포의 각 브로커에 대해 전달되지 않은 메시지를 수신하도록 배달 못 한 주소 및 큐를 추가하도록 CR 인스턴스 구성을 시작합니다.
OpenShift 명령줄 인터페이스 사용:
브로커 배포의 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.
oc login -u <user> -p <password> --server=<host:port>-
다운로드 및 추출한 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 및 큐를 지정하여 전달되지 않은 메시지를 수신할 행을 추가합니다. 예를 들면 다음과 같습니다.apiVersion: broker.amq.io/v1beta1 kind: ActiveMQArtemisAddress metadata: name: ex-aaoaddress spec: ... addressName: myDeadLetterAddress queueName: myDeadLetterQueue routingType: anycast ...앞의 구성은
myDeadLetterQueue라는 dead letter 큐와anycast라우팅 유형을 사용하여myDeadLetterAddress라는 dead letter 주소를 정의합니다.참고metadata섹션에서namespace속성을 포함하고 OpenShift Container Platform 웹 콘솔을 사용하여 CR 인스턴스를 생성하는 경우에만 값을 지정해야 합니다. 지정해야 하는 값은 브로커 배포를 위한 OpenShift 프로젝트의 이름입니다.주소 CR 인스턴스를 배포합니다.
OpenShift 명령줄 인터페이스 사용:
- CR 파일을 저장합니다.
브로커 배포를 위해 프로젝트로 전환합니다.
$ oc project <project_name>주소 CR을 생성합니다.
$ oc create -f <path/to/address_custom_resource_instance>.yaml
OpenShift 웹 콘솔 사용:
- CR 구성을 마쳤으면 생성을 클릭합니다.
브로커 배포용 CR(사용자 정의 리소스) 인스턴스 구성을 시작합니다.
샘플 CR 파일에서 다음을 수행합니다.
-
다운로드 및 추출한 Operator 설치 아카이브의
deploy/crs디렉터리에 포함된broker_activemqartemis_cr.yaml이라는 샘플 CR 파일을 엽니다.
-
다운로드 및 추출한 Operator 설치 아카이브의
OpenShift Container Platform 웹 콘솔 사용:
-
기본 브로커 CRD를 기반으로 새 CR 인스턴스를 시작합니다. 왼쪽 창에서
를 클릭합니다. - ActiveMQArtemis CRD를 클릭합니다.
- Instances 탭을 클릭합니다.
Create ActiveMQArtemis 를 클릭합니다.
콘솔에서 YAML 편집기가 열리고 CR 인스턴스를 구성할 수 있습니다.
-
기본 브로커 CRD를 기반으로 새 CR 인스턴스를 시작합니다. 왼쪽 창에서
기본 브로커 배포의 경우 구성은 다음과 같이 표시될 수 있습니다.
apiVersion: broker.amq.io/v1beta1 kind: ActiveMQArtemis metadata: name: ex-aao application: ex-aao-app spec: deploymentPlan: size: 1 image: placeholder requireLogin: false persistenceEnabled: true journalType: nio messageMigration: truebroker_activemqartemis_cr.yaml샘플 CR 파일에서image속성이자리 표시자의 기본값으로 설정되어 있는지 확인합니다. 이 값은 기본적으로image속성이 배포에 사용할 브로커 컨테이너 이미지를 지정하지 않음을 나타냅니다. Operator에서 사용할 적절한 브로커 컨테이너 이미지를 결정하는 방법을 알아보려면 2.4절. “Operator에서 컨테이너 이미지를 선택하는 방법” 를 참조하십시오.참고metadata섹션에서namespace속성을 포함하고 OpenShift Container Platform 웹 콘솔을 사용하여 CR 인스턴스를 생성하는 경우에만 값을 지정해야 합니다. 지정해야 하는 값은 브로커 배포를 위한 OpenShift 프로젝트의 이름입니다.CR의
deploymentPlan섹션에서 다음과 같이 단일섹션이 포함된 새 주소 10.0.0.1 섹션을 추가합니다.addressSettingspec: deploymentPlan: size: 1 image: placeholder requireLogin: false persistenceEnabled: true journalType: nio messageMigration: true addressSettings: addressSetting:match속성의 단일 인스턴스를addressSetting블록에 추가합니다. address-matching 표현식을 지정합니다. 예를 들면 다음과 같습니다.spec: deploymentPlan: size: 1 image: placeholder requireLogin: false persistenceEnabled: true journalType: nio messageMigration: true addressSettings: addressSetting: - match: myAddressmatch-
브로커가 다음 구성을 적용하는 주소 또는 주소 집합을 지정합니다. 이 예에서
match속성 값은myAddress라는 단일 주소에 해당합니다.
전달되지 않은 메시지와 관련된 속성을 추가하고 값을 지정합니다. 예를 들면 다음과 같습니다.
spec: deploymentPlan: size: 1 image: placeholder requireLogin: false persistenceEnabled: true journalType: nio messageMigration: true addressSettings: addressSetting: - match: myAddress deadLetterAddress: myDeadLetterAddress maxDeliveryAttempts: 5deadLetterAddress- 브로커가 전달되지 않은 메시지를 전송하는 주소입니다.
maxDeliveryAttempts구성된 배달 주소로 메시지를 이동하기 전에 브로커가 수행하는 최대 전달 시도 횟수입니다.
위 예에서 브로커가 5번의 실패한 시도를 하는 경우
myAddress로 시작하는 주소로 메시지를 전달하려고 하면 브로커는 메시지를 지정된 dead letter 주소myDeadLetterAddress로 이동합니다.
(선택 사항) 다른 주소 또는 주소에 유사한 구성을 적용합니다. 예를 들면 다음과 같습니다.
spec: deploymentPlan: size: 1 image: placeholder requireLogin: false persistenceEnabled: true journalType: nio messageMigration: true addressSettings: addressSetting: - match: myAddress deadLetterAddress: myDeadLetterAddress maxDeliveryAttempts: 5 - match: 'myOtherAddresses*' deadLetterAddress: myDeadLetterAddress maxDeliveryAttempts: 3이 예제에서 두 번째
match속성 값에는 별표 와일드카드 문자가 포함됩니다. 와일드카드 문자는 이전 구성이myECDHEAddresses문자열로 시작하는 모든 주소에 적용됨을 나타냅니다.참고와일드카드 표현식을
match속성의 값으로 사용하는 경우 해당 값을 작은 따옴표로 묶어야 합니다(예:'myECDHEAddresses*').address>-< 섹션의 시작 부분에applyRule속성을 추가하고 값을 지정합니다. 예를 들면 다음과 같습니다.spec: deploymentPlan: size: 1 image: placeholder requireLogin: false persistenceEnabled: true journalType: nio messageMigration: true addressSettings: applyRule: merge_all addressSetting: - match: myAddress deadLetterAddress: myDeadLetterAddress maxDeliveryAttempts: 5 - match: 'myOtherAddresses*' deadLetterAddress: myDeadLetterAddress maxDeliveryAttempts: 3applyRule속성은 Operator가 일치하는 각 주소 또는 주소 집합에 대해 CR에 추가하는 구성을 적용하는 방법을 지정합니다. 지정할 수 있는 값은 다음과 같습니다.merge_allCR 및 기본 구성에 지정된 주소 설정의 경우 동일한 주소 또는 주소 집합과 일치하는 기본 구성의 경우 다음을 수행합니다.
- 기본 구성에 지정된 속성 값을 CR에 지정된 속성 값으로 바꿉니다.
- CR 또는 기본 구성에 고유하게 지정된 속성 값을 유지합니다. 병합된 최종 구성에 각 항목을 포함합니다.
- 특정 주소 또는 주소 집합과 고유하게 일치하는 CR 또는 기본 구성에 지정된 주소 설정의 경우 최종 병합 구성에 포함합니다.
merge_replace- CR 및 동일한 주소 또는 주소 집합과 일치하는 기본 구성에 둘 다 지정된 주소 설정의 경우 최종 병합 구성에 CR 에 지정된 설정을 포함합니다. CR에 지정되지 않은 경우에도 기본 구성에 지정된 속성을 포함하지 마십시오.
- 특정 주소 또는 주소 집합과 고유하게 일치하는 CR 또는 기본 구성에 지정된 주소 설정의 경우 최종 병합 구성에 포함합니다.
replace_all- 기본 구성에 지정된 모든 주소 설정을 CR에 지정된 주소로 바꿉니다. 병합된 최종 구성은 CR에 지정된 구성과 정확히 일치합니다.
참고CR에
applyRule속성을 명시적으로 포함하지 않으면 Operator에서 기본값merge_all을 사용합니다.브로커 CR 인스턴스를 배포합니다.
OpenShift 명령줄 인터페이스 사용:
- CR 파일을 저장합니다.
CR 인스턴스를 생성합니다.
$ oc create -f <path/to/broker_custom_resource_instance>.yaml
OpenShift 웹 콘솔 사용:
- 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를 사용하여 작업을 수행합니다.