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.
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.
om Artemis toe te laten ActiveMQ:
-
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
-
Configureer de relaties in het
.magento.app.yaml
-bestand.code language-yaml relationships: activemq-artemis: "activemq-artemis:activemq-artemis"
-
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>
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
-
Meld u aan bij de
magento-cloud
CLI en het project:code language-bash magento-cloud login
-
Ontdek de omgeving met ActiveMQ Artemis geïnstalleerd en geconfigureerd.
code language-bash magento-cloud environment:checkout <environment-id>
-
SSH gebruiken om verbinding te maken met de cloud-omgeving:
code language-bash magento-cloud ssh
-
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 bijvoorbeeldactivemq-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" } ] }
-
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
voorus
)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. -
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
.