[PaaS만]{class="badge informative" title="Adobe Commerce 온 클라우드 프로젝트(Adobe 관리 PaaS 인프라) 및 온프레미스 프로젝트에만 적용됩니다."}

RabbitMQ 서비스 설정

MQF(메시지 큐 프레임워크)은(는) 모듈이(가) 메시지를 큐에 게시할 수 있도록 하는 Adobe Commerce 내의 시스템입니다. 또한 비동기적으로 메시지를 수신하는 소비자도 정의합니다.

MQF는 RabbitMQ을(를) 메시징 브로커로 사용하여 메시지를 보내고 받는 확장 가능한 플랫폼을 제공합니다. 게재되지 않은 메시지를 저장하는 메커니즘도 포함됩니다. RabbitMQ은(는) AMQP(고급 메시지 대기열 프로토콜) 0.9.1 사양을 기반으로 합니다.

NOTE
클라우드 인프라의 Adobe Commerce은 또한 STOMP 프로토콜을 사용하여 대체 메시지 큐 서비스로 ActiveMQ Artemis를 지원합니다.
IMPORTANT
RabbitMQ과(와) 같은 기존 AMQP 기반 서비스를 사용하는 경우 클라우드 인프라의 Adobe Commerce을 사용하여 서비스를 만드는 대신 QUEUE_CONFIGURATION 환경 변수를 사용하여 사이트에 연결합니다.

master 분기를 포함하여 Pro 통합 환경 및 스타터 환경에서 서비스를 설정하려면 다음 지침을 사용하십시오.

NOTE
Pro 프로덕션 및 스테이징 환경에서 서비스 구성을 변경하려면 Adobe Commerce 지원 티켓을 제출하십시오.

RabbitMQ를 사용하려면:

  1. 설치된 RabbitMQ 버전과 함께 필요한 이름, 유형 및 디스크 값(MB)을 .magento/services.yaml 파일에 추가합니다.

    code language-yaml
    rabbitmq:
        type: rabbitmq:<version>
        disk: 1024
    
  2. .magento.app.yaml 파일에서 관계를 구성합니다.

    code language-yaml
    relationships:
        rabbitmq: "rabbitmq:rabbitmq"
    
  3. 코드 변경 사항을 추가, 커밋 및 푸시합니다.

    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>
    
  4. 서비스 관계를 확인합니다.

TIP
초기 서비스를 설정한 후 services.yaml.magento.app.yaml 구성 파일을 업데이트하여 설치된 서비스의 소프트웨어 버전을 변경할 수 있습니다. 서비스 업그레이드 또는 다운그레이드에 대한 지침은 서비스 버전 변경을 참조하세요.

디버깅을 위해 RabbitMQ에 연결

디버깅을 위해 다음 방법 중 하나로 서비스 인스턴스에 직접 연결하는 것이 유용합니다.

  • 로컬 개발 환경에서 연결
  • 응용 프로그램에서 연결
  • PHP 응용 프로그램에서 연결

로컬 개발 환경에서 연결

  1. magento-cloud CLI 및 프로젝트에 로그인합니다.

    code language-bash
    magento-cloud login
    
  2. RabbitMQ가 설치 및 구성된 환경을 확인하십시오.

    code language-bash
    magento-cloud environment:checkout <environment-id>
    
  3. SSH를 사용하여 클라우드 환경에 연결합니다.

    code language-bash
    magento-cloud ssh
    
  4. $MAGENTO_CLOUD_RELATIONSHIPS 변수에서 RabbitMQ 연결 세부 정보 및 로그인 자격 증명을 검색합니다.

    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"
          }
       ]
    }
    
  5. RabbitMQ로 로컬 포트 전달 활성화(프로젝트가 US-3, EU-5 또는 AP-3 지역과 같은 다른 지역에 있는 경우 us-3을(를) eu-5/ap-3/us(으)로 대체)

    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
    
  6. 세션이 열려 있는 동안 로컬 워크스테이션에서 원하는 RabbitMQ 클라이언트를 시작할 수 있습니다. 이 클라이언트는 MAGENTO_CLOUD_RELATIONSHIPS 변수의 포트 번호, 사용자 이름 및 암호 정보를 사용하여 localhost:<portnumber>에 연결하도록 구성됩니다.

응용 프로그램에서 연결

응용 프로그램에서 실행 중인 RabbitMQ에 연결하려면 ​ 파일에 프로젝트 종속성으로 ​amqp-utils.magento.app.yaml과(와) 같은 클라이언트를 설치합니다.

For example,

dependencies:
    ruby:
        amqp-utils: "0.5.1"

PHP 컨테이너에 로그인하면 대기열을 관리하는 데 사용할 수 있는 amqp- 명령을 입력합니다.

PHP 응용 프로그램에서 연결

PHP 응용 프로그램을 사용하여 RabbitMQ에 연결하려면 소스 트리에 PHP 라이브러리를 추가합니다.

recommendation-more-help
7c2b03ac-000c-497d-aba3-2c6dc720a938