はじめに
2018 年 11 月、Magento 2.3.0 の更新により、メッセージ キュー管理ツール RabbitMQ との統合が静かに導入されました。この新機能により、Magento 2 Commerce エディションとオープン ソース エディションの両方に強力な最適化オプションが開かれました。
最近、RabbitMQ のインストールと構成について話しました。次に、Rabbitmq を構成し、インストールされた Magento 2 インスタンスで使用する方法を示します。
メリット
RabbitMQ を使用する主な利点は、メッセージ ブローカーにデータを保存することで、ピーク時のサーバーの負荷を軽減できることです。 2.3.0 より前は、MySQL と cron のみがこれらの目的に使用されていました。しかし今では、Rabbitmq を使用して、MySQL データベースの負荷を減らして現在のストアを高速化できます。
Rabbitmq のインストール
Rabbitmq のインストールについては、RabbitMQ のインストールと構成の記事で説明しています。これを使用して、RabbitMQ を Ubuntu または CentOS サーバーにインストールできます。
Rabbitmq 構成
1. まず、ゲスト ユーザーを削除する必要があります:
# rabbitmqctl delete_user guest
2. その後、必要な権限を持つユーザーを作成する必要があります。
# rabbitmqctl add_user rabbitmq rabbitmq_pwd # rabbitmqctl set_user_tags rabbitmq administrator # rabbitmqctl set_permissions -p / rabbitmq ".*" ".*" ".*"
3. また、キューを作成する必要があります:
# rabbitmqadmin --username=rabbitmq --password=rabbitmq_pwd declare queue --vhost=/ name=async.operations.all durable=true
以上で、rabbitmq を使用する準備が整いました。これから、Magento を使用するための構成を開始できます。
マジェント構成
まず、rabbitmq 構成を追加する必要があります。それには 2 つの方法があります:
bin/magento 経由
$ php bin/magento setup:config:set --amqp-host="127.0.0.1" --amqp-port="5672" --amqp-user="rabbitmq" --amqp-password="rabbitmq_pwd" --amqp-virtualhost="/"
app/etc/env.php を次の行で編集
'queue' => array ( 'amqp' => array ( 'host' => '127.0.0.1', 'port' => '5672', 'user' => 'rabbitmq', 'password' => 'rabbitmq_pwd', 'virtualhost' => '/' ), ),
また、cron ランナーを app/etc/env.php に追加する必要があります:
'cron_consumers_runner' => [ 'cron_run' => true, 'max_messages' => 0, 'consumers' => [ 'async.operations.all', 'codegeneratorProcessor' ] ]
それで全部です。 Magento で rabbitmq コンシューマーを正常に構成しました。
Magento での rabbitmq コンシューマーのテスト
すべてのコンシューマを一覧表示するには、次のコマンドを実行できます:
# php bin/magento queue:consumers:list
コンシューマーを実行するには、次のコマンドを実行する必要があります:
# php bin/magento queue:consumers:start async.operations.all
それで全部です。コンシューマはすぐに動作するはずです!
結論
RabbitMQ は、ストアの速度を向上させるのに役立つ強力なメッセージ ブローカーです。また、MySQL サーバーの負荷を軽減すると、負荷が急増したときに役立ちます。