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

ActiveMQ 서비스 설정

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

MQF는 메시지를 보내고 받는 확장 가능한 플랫폼을 제공하는 메시징 브로커로 ActiveMQ Artemis을(를) 사용할 수 있습니다. 게재되지 않은 메시지를 저장하는 메커니즘도 포함됩니다. ActiveMQ Artemis은(는) 메시징을 위해 STOMP(Streaming Text Oriented Messaging Protocol) 프로토콜을 지원합니다.

ActiveMQ Artemis은(는) 메시지 큐 관리에 RabbitMQ를 대체할 수 있습니다. 이 기능은 ActiveMQ와 관련된 기능이 필요하거나 STOMP 프로토콜을 사용하려는 경우 특히 유용합니다.

IMPORTANT
클라우드 인프라에서 Adobe Commerce을 사용하여 서비스를 만드는 대신 ActiveMQ과(와) 같은 기존 메시지 브로커 서비스를 사용하려는 경우 QUEUE_CONFIGURATION 환경 변수를 사용하여 사이트에 연결하십시오.

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

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

ActiveMQ Artemis를 사용하려면:

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

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

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

    code language-bash
    git add .magento/services.yaml .magento.app.yaml
    
    code language-bash
    git commit -m "Enable ActiveMQ Artemis service"
    
    code language-bash
    git push origin <branch-name>
    
  4. 서비스 관계를 확인합니다.

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

디버깅을 위해 ActiveMQ에 연결

디버깅을 위해 다음 방법 중 하나로 서비스 인스턴스에 직접 연결할 수 있습니다.

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

로컬 개발 환경에서 연결

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

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

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

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

    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"])));'
    

    응답에서 ActiveMQ 정보를 찾습니다. 관계 이름은 .magento.app.yaml 파일에서 관계 이름을 구성한 방식에 따라 다릅니다. 예를 들어 activemq-artemis을(를) 관계 이름으로 사용한 경우:

    code language-json
    {
       "activemq-artemis" : [
          {
             "password" : "guest",
             "ip" : "246.0.129.2",
             "scheme" : "stomp",
             "port" : 61616,
             "host" : "activemq-artemis.internal",
             "username" : "guest"
          }
       ]
    }
    
  5. ActiveMQ로 로컬 포트 전달 사용(프로젝트가 US-3, EU-5 또는 AP-3 지역과 같은 다른 지역에 있는 경우 us-3을(를) eu-5/ap-3/us(으)로 대체)

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

    http://localhost:8161에서 ActiveMQ Artemis 웹 콘솔에 액세스하는 예는 다음과 같습니다.

    code language-bash
    ssh -L 8161:activemq-artemis.internal:8161 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
    
    note note
    NOTE
    ActiveMQ Artemis는 STOMP 메시징에 포트 61616을 사용하고 웹 콘솔에 포트 8161을 사용합니다.
  6. 세션이 열려 있는 동안에는 MAGENTO_CLOUD_RELATIONSHIPS 변수의 사용자 이름과 암호를 사용하여 http://localhost:8161의 ActiveMQ Artemis 웹 콘솔에 액세스할 수 있습니다.

응용 프로그램에서 연결

응용 프로그램에서 실행 중인 ActiveMQ에 연결하려면 PHP 응용 프로그램에 STOMP 클라이언트 라이브러리를 설치합니다.

PHP 응용 프로그램에서 연결

PHP 응용 프로그램을 사용하여 ActiveMQ에 연결하려면 소스 트리에 PHP STOMP 라이브러리를 추가합니다. Adobe Commerce은 ActiveMQ 통신에 STOMP 프로토콜을 사용하며, ActiveMQ Artemis가 구성된 서비스로 검색되면 배포 중에 구성이 자동으로 설정됩니다.

프로토콜 지원

클라우드 인프라의 Adobe Commerce에 있는 ActiveMQ Artemis는 STOMP(Streaming Text Oriented Messaging Protocol) 프로토콜을 사용합니다.

  • STOMP: 큐 작업에 사용되는 메시징 프로토콜(포트 61616)
  • 웹 콘솔: HTTP(포트 8161)를 통해 액세스할 수 있는 관리 인터페이스

RabbitMQ와의 차이점

ActiveMQ Artemis과(와) RabbitMQ은(는) 모두 Adobe Commerce의 메시지 브로커 역할을 하지만 몇 가지 차이점이 있습니다.

  • 프로토콜: ActiveMQ Artemis는 STOMP 프로토콜을 사용하는 반면 RabbitMQ는 AMQP를 사용합니다.
  • 구성: ActiveMQ Artemis가 구성되면 Adobe Commerce에서 자동으로 STOMP 프로토콜을 사용합니다
  • 우선 순위: ActiveMQ와 RabbitMQ가 모두 구성된 경우 ActiveMQ가 STOMP 기반 작업에 우선하며 AMQP 작업은 RabbitMQ를 사용합니다.
  • 웹 콘솔: ActiveMQ는 큐 및 메시지 모니터링을 위한 웹 기반 관리 콘솔을 제공합니다

큐 구성

ActiveMQ Artemis가 서비스로 구성되면 Adobe Commerce은 STOMP 프로토콜을 사용하도록 큐 시스템을 자동으로 구성합니다. 배포 중에 app/etc/env.php 파일에 구성이 기록됩니다.

'queue' => [
    'stomp' => [
        'host' => 'activemq-artemis.internal',
        'port' => '61616',
        'user' => 'guest',
        'password' => 'guest'
    ],
    'default_connection' => 'stomp'
]

필요한 경우 QUEUE_CONFIGURATION 환경 변수를 사용하여 이 구성을 재정의할 수 있습니다.

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