RabbitMQ 서비스 설정
MQF(메시지 큐 프레임워크)은(는) 모듈이(가) 메시지를 큐에 게시할 수 있도록 하는 Adobe Commerce 내의 시스템입니다. 또한 비동기적으로 메시지를 수신하는 소비자도 정의합니다.
MQF는 RabbitMQ을(를) 메시징 브로커로 사용하여 메시지를 보내고 받는 확장 가능한 플랫폼을 제공합니다. 게재되지 않은 메시지를 저장하는 메커니즘도 포함됩니다. RabbitMQ은(는) AMQP(고급 메시지 대기열 프로토콜) 0.9.1 사양을 기반으로 합니다.
QUEUE_CONFIGURATION
환경 변수를 사용하여 사이트에 연결합니다.master
분기를 포함하여 Pro 통합 환경 및 스타터 환경에서 서비스를 설정하려면 다음 지침을 사용하십시오.
RabbitMQ을 사용하려면:
-
설치된 RabbitMQ 버전과 함께 필요한 이름, 유형 및 디스크 값(MB)을
.magento/services.yaml
파일에 추가합니다.code language-yaml rabbitmq: type: rabbitmq:<version> disk: 1024
-
.magento.app.yaml
파일에서 관계를 구성합니다.code language-yaml relationships: rabbitmq: "rabbitmq:rabbitmq"
-
코드 변경 사항을 추가, 커밋 및 푸시합니다.
code language-bash git add .magento/services.yaml .magento.app.yaml
code language-bash git commit -m "Enable RabbitMQ service"
code language-bash git push origin <branch-name>
-
서비스 관계를 확인합니다.
services.yaml
및 .magento.app.yaml
구성 파일을 업데이트하여 설치된 서비스의 소프트웨어 버전을 변경할 수 있습니다. 서비스 업그레이드 또는 다운그레이드에 대한 지침은 서비스 버전 변경을 참조하세요.디버깅을 위해 RabbitMQ에 연결
디버깅을 위해 다음 방법 중 하나로 서비스 인스턴스에 직접 연결하는 것이 유용합니다.
- 로컬 개발 환경에서 연결
- 응용 프로그램에서 연결
- PHP 응용 프로그램에서 연결
로컬 개발 환경에서 연결
-
magento-cloud
CLI 및 프로젝트에 로그인합니다.code language-bash magento-cloud login
-
RabbitMQ이 설치 및 구성된 환경을 확인하십시오.
code language-bash magento-cloud environment:checkout <environment-id>
-
SSH를 사용하여 클라우드 환경에 연결합니다.
code language-bash magento-cloud ssh
-
$CLOUD_RELATIONSHIPS 변수에서 RabbitMQ MAGENTO 연결 세부 정보 및 로그인 자격 증명을 검색합니다.
code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
또는
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
응답에서 RabbitMQ 정보를 찾습니다. 예를 들면 다음과 같습니다.
code language-json { "rabbitmq" : [ { "password" : "guest", "ip" : "246.0.129.2", "scheme" : "amqp", "port" : 5672, "host" : "rabbitmq.internal", "username" : "guest" } ] }
-
RabbitMQ으로 로컬 포트 전달을 활성화합니다(프로젝트가 US-3, EU-5 또는 AP-3 지역과 같은 다른 지역에 있는 경우
us
을(를)us-3
/eu-5
/ap-3
(으)로 대체)code language-bash ssh -L <port-number>:rabbitmq.internal:<port-number> <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
http://localhost:15672
에서 RabbitMQ 관리 웹 인터페이스에 액세스하는 예는 다음과 같습니다.code language-bash ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
-
세션이 열려 있는 동안 로컬 워크스테이션에서 원하는 RabbitMQ 클라이언트를 시작할 수 있습니다. MAGENTO_CLOUD_RELATIONSHIPS 변수의 포트 번호, 사용자 이름 및 암호 정보를 사용하여
localhost:<portnumber>
에 연결하도록 구성되었습니다.
응용 프로그램에서 연결
응용 프로그램에서 실행 중인 RabbitMQ에 연결하려면 .magento.app.yaml
파일에 프로젝트 종속성으로 amqp-utils과(와) 같은 클라이언트를 설치합니다.
For example,
dependencies:
ruby:
amqp-utils: "0.5.1"
PHP 컨테이너에 로그인하면 대기열을 관리하는 데 사용할 수 있는 amqp-
명령을 입력합니다.
PHP 응용 프로그램에서 연결
PHP 애플리케이션을 사용하여 RabbitMQ에 연결하려면 소스 트리에 PHP 라이브러리를 추가합니다.