설정 RabbitMQ 서비스

다음 MQF(메시지 큐 프레임워크) 는 을 허용하는 Adobe Commerce 내의 시스템입니다. 모듈 메시지를 대기열에 게시합니다. 또한 비동기적으로 메시지를 수신하는 소비자도 정의합니다.

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

WARNING
다음과 같이 기존 AMQP 기반 서비스를 사용하는 것이 좋습니다. RabbitMQ, Adobe Commerce on cloud infrastructure를 사용하여 자동으로 만드는 대신 QUEUE_CONFIGURATION 사이트에 연결하기 위한 환경 변수입니다.

Pro 통합 환경 및 Starter 환경의 서비스 설정에 대해 다음 지침을 따르십시오. master 분기입니다.

NOTE
Adobe Commerce 지원 티켓 제출 Pro 프로덕션 및 스테이징 환경에서 서비스 구성을 변경합니다.

RabbitMQ을 활성화하려면:

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

    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. 에서 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으로 로컬 포트 전달을 활성화합니다.

    code language-bash
    ssh -L <port-number>:rabbitmq.internal:<port-number> <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
    

    다음 위치에서 RabbitMQ 관리 웹 인터페이스에 액세스하는 예제 http://localhost:15672 은(는)

    code language-bash
    ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
    
  6. 세션이 열려 있는 동안 로컬 워크스테이션에서 원하는 RabbitMQ 클라이언트를 시작할 수 있습니다. 이 클라이언트은에 연결하도록 구성되어 있습니다. localhost:<portnumber> Magento_CLOUD_RELATIONSHIPS 변수의 포트 번호, 사용자 이름 및 암호 정보 사용.

응용 프로그램에서 연결

애플리케이션에서 실행 중인 RabbitMQ에 연결하려면 다음과 같은 클라이언트를 설치합니다. amqp-utils를 프로젝트 종속성으로 사용 .magento.app.yaml 파일.

For example,

dependencies:
    ruby:
        amqp-utils: "0.5.1"

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

PHP 응용 프로그램에서 연결

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

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