RabbitMQ 서비스 설정

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

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

WARNING
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. $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"
          }
       ]
    }
    
  5. 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
    
  6. 세션이 열려 있는 동안 로컬 워크스테이션에서 원하는 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 라이브러리를 추가합니다.

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26