[Alleen PaaS]{class="badge informative" title="Is alleen van toepassing op Adobe Commerce op Cloud-projecten (door Adobe beheerde PaaS-infrastructuur) en op projecten in het veld."}

ActiveMQ -service instellen

Het ​ Kader van de Rij van het Bericht (MQF) ​ is een systeem binnen Adobe Commerce dat a ​ module ​ toestaat om berichten aan rijen te publiceren. Het bepaalt ook de consumenten die de berichten asynchroon ontvangen.

MQF kan ​ Artemis ActiveMQ ​ als overseinenmakelaar gebruiken, die een scalable platform voor het verzenden van en het ontvangen van berichten verstrekt. Het omvat ook een mechanisme voor het opslaan van niet-geleverde berichten. ActiveMQ Artemis ondersteunt het STOMP-protocol (Streaming Text Oriented Messaging Protocol) voor berichten.

ActiveMQ Artemis is beschikbaar als alternatief voor RabbitMQ voor het beheren van berichtrijen. Het is met name handig wanneer u functies nodig hebt die specifiek zijn voor ActiveMQ of wanneer u het STOMP-protocol wilt gebruiken.

IMPORTANT
Als u liever een bestaande berichtenmakelservice gebruikt, zoals ActiveMQ , in plaats van Adobe Commerce op een cloudinfrastructuur te vertrouwen om deze voor u te maken, gebruikt u de QUEUE_CONFIGURATION -omgevingsvariabele om deze aan te sluiten op uw site.

Gebruik de volgende instructies voor de dienstopstelling op de milieu's van de Integratie Pro en van de Starter milieu's, met inbegrip van de master tak.

NOTE
​ leg een kaartje van de Steun van Adobe Commerce ​ voor om de de dienstconfiguratie op ProProductie en het Opvoeren milieu's te veranderen.

om Artemis toe te laten ActiveMQ:

  1. Voeg de vereiste naam, het type en de schijfwaarde (in MB) toe aan het .magento/services.yaml -bestand en aan de geïnstalleerde ActiveMQ-versie.

    code language-yaml
    activemq-artemis:
        type: activemq-artemis:<version>
        disk: 1024
    
  2. Configureer de relaties in het .magento.app.yaml -bestand.

    code language-yaml
    relationships:
        activemq-artemis: "activemq-artemis:activemq-artemis"
    
  3. U kunt wijzigingen in de code toevoegen, doorvoeren en doorvoeren.

    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. ​ verifieer de de dienstverhoudingen ​.

TIP
Nadat u de service hebt ingesteld, kunt u de softwareversie van een geïnstalleerde service wijzigen door de configuratiebestanden van services.yaml en .magento.app.yaml bij te werken. Zie ​ de dienstversie van de Verandering ​ voor begeleiding bij de bevordering of het degraderen van de dienst.

Verbinding maken met ActiveMQ voor foutopsporing

Voor het zuiveren doeleinden, kunt u met een de dienstinstantie op één van de volgende manieren direct verbinden:

  • Verbinding maken met uw lokale ontwikkelomgeving
  • Verbinding maken vanuit de toepassing
  • Verbinding maken met uw PHP-toepassing

Verbinding maken met uw lokale ontwikkelomgeving

  1. Meld u aan bij de magento-cloud CLI en het project:

    code language-bash
    magento-cloud login
    
  2. Ontdek de omgeving met ActiveMQ Artemis geïnstalleerd en geconfigureerd.

    code language-bash
    magento-cloud environment:checkout <environment-id>
    
  3. SSH gebruiken om verbinding te maken met de cloud-omgeving:

    code language-bash
    magento-cloud ssh
    
  4. Haal de verbindingsdetails ActiveMQ en login geloofsbrieven van $MAGENTO_CLOUD_RELATIONSHIPS ​ variabele terug:

    code language-bash
    echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
    

    of

    code language-bash
    php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
    

    In de reactie, vind de informatie ActiveMQ. De relatienaam hangt van af hoe u het in uw .magento.app.yaml dossier vormde. Als u bijvoorbeeld activemq-artemis als relatienaam hebt gebruikt:

    code language-json
    {
       "activemq-artemis" : [
          {
             "password" : "guest",
             "ip" : "246.0.129.2",
             "scheme" : "stomp",
             "port" : 61616,
             "host" : "activemq-artemis.internal",
             "username" : "guest"
          }
       ]
    }
    
  5. Laat lokale haven toe door:sturen aan ActiveMQ (als uw project op een verschillend gebied zoals V.S.-3, EU-5, of AP-3 gebied wordt gevestigd, substitueer us-3/eu-5/ ap-3 voor us)

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

    Een voorbeeld voor toegang tot de ActiveMQ Artemis-webconsole op http://localhost:8161 is:

    code language-bash
    ssh -L 8161:activemq-artemis.internal:8161 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
    
    note note
    NOTE
    ActiveMQ Artemis gebruikt poort 61616 voor STOMP-berichten en poort 8161 voor de webconsole.
  6. Terwijl de sessie is geopend, kunt u de ActiveMQ Artemis-webconsole op http://localhost:8161 openen met de gebruikersnaam en het wachtwoord van de MAGENTO_CLOUD_RELATIONSHIPS-variabele.

Verbinding maken vanuit de toepassing

Als u verbinding wilt maken met ActiveMQ die wordt uitgevoerd in een toepassing, installeert u een STOMP-clientbibliotheek in uw PHP-toepassing.

Verbinding maken met uw PHP-toepassing

Als u verbinding wilt maken met ActiveMQ met uw PHP-toepassing, voegt u een PHP STOMP-bibliotheek toe aan de bronstructuur. Adobe Commerce gebruikt het STOMP-protocol voor ActiveMQ-communicatie en de configuratie wordt automatisch ingesteld tijdens de implementatie wanneer ActiveMQ-artemis wordt gedetecteerd als een geconfigureerde service.

Protocol-ondersteuning

ActiveMQ-artemis in Adobe Commerce op cloudinfrastructuur gebruikt het STOMP-protocol (Streaming Text Oriented Messaging Protocol):

  • STOMP: Het overseinenprotocol dat voor rijverrichtingen (haven 61616) wordt gebruikt
  • Console van het Web: De interface van het beheer toegankelijk via HTTP (haven 8161)

Verschillen met KonijnMQ

Hoewel zowel ActiveMQ Artemis als RabbitMQ fungeren als berichtenmakelaars voor Adobe Commerce, zijn er enkele verschillen:

  • Protocol: De Artemis van ActiveMQ gebruikt STOMP protocol, terwijl RabbitMQ AMQP gebruikt
  • Configuratie: Wanneer de Artemis ActiveMQ wordt gevormd, gebruikt Adobe Commerce automatisch het protocol van STOMP
  • Prioriteit: Als zowel ActiveMQ als RabbitMQ worden gevormd, neemt ActiveMQ belangrijkheid voor op STOMP-Gebaseerde verrichtingen, terwijl de verrichtingen van AMQP RabbitMQ gebruiken
  • Console van het Web: ActiveMQ verstrekt een web-based beheersconsole voor controlerijen en berichten

Wachtrijconfiguratie

Wanneer de Artemis ActiveMQ als dienst wordt gevormd, vormt Adobe Commerce automatisch het rijsysteem om het protocol van STOMP te gebruiken. De configuratie wordt tijdens de implementatie naar het app/etc/env.php -bestand geschreven:

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

U kunt deze configuratie indien nodig negeren met de omgevingsvariabele QUEUE_CONFIGURATION .

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