RabbitMq の概要
RabbitMq は、異なるサービス間でメッセージを送受信できるメッセージ ブローカーです。これは、Advanced Message Queuing Protocol (AMQP) を実装するメッセージ ブローカーです。 Erlang プログラミング言語で書かれています。
RabbitMq は、それぞれのパッケージ マネージャーを使用して、さまざまなオペレーティング システムにインストールできます。 RabbitMQ を使用するには、事前に Erlang/OTP をインストールする必要があります。詳細については、公式ドキュメントを参照してください。
sudo apt-get install rabbitmq-server
brew install rabbitmq
インストールしたら、次のコマンドを使用して RabbitMq サーバーを起動できます:
sudo rabbitmq-server
サーバーが起動したら、デフォルトのポート 5672 を使用してアプリケーションから Rabbitmq にアクセスできます。
RabbitMq 管理コンソールを有効にするには、次のコマンドを実行します。
sudo rabbitmq-plugins enable rabbitmq_management
ブラウザで http://localhost:15672/ にアクセスすると、RabbitMq 管理コンソールにアクセスできます。デフォルトのユーザー名とパスワードは guest です。
NodeJ から RabbitMq と対話するには、amqplib ライブラリを使用できます。次のコマンドを使用してライブラリをインストールできます:
npm install amqplib
NodeJ から RabbitMq に接続し、RabbitMq と対話するチャネルを作成するには、次のコードを使用できます。
const amqp = require("amqplib"); const connect = async (url) => { const connection = await amqp.connect(url); const channel = await connection.createChannel(); return channel; }; connect("amqp://localhost:5672").then((channel) => { console.log("Connected to RabbitMQ"); channel.close(); process.exit(0); });
これで、RabbitMq と対話するためのチャネルができました。このチャネルを使用して、RabbitMq からメッセージを送受信できます。キューに mq-test-queue という名前を付けて、メッセージをキューに送信します。
connect("amqp://localhost:5672").then((channel) => { console.log("Connected to RabbitMQ"); channel.assertQueue("mq-test-queue"); console.log("Queue created"); channel.sendToQueue("mq-test-queue", Buffer.from("Hello World!")); console.log("Message sent"); });
キュー mq-test-queue を作成し、メッセージ Hello World! を送信しました。行列に。キューを作成するには、assertQueue メソッドを使用し、キューにメッセージを送信するには、sendToQueue メソッドを使用しました。
キューからメッセージを受信するには、consume メソッドを使用できます。
connect("amqp://localhost:5672").then((channel) => { console.log("Connected to RabbitMQ"); channel.assertQueue("mq-test-queue"); console.log("Queue created"); channel.sendToQueue("mq-test-queue", Buffer.from("Hello World!")); console.log("Message sent"); channel.consume("mq-test-queue", (msg) => { console.log("Message received", msg.content.toString()); }); });
消費メソッドはコールバック関数を受け取り、メッセージ オブジェクトをコールバック関数に渡し、msg.content.toString() を使用してメッセージ コンテンツにアクセスします。
メッセージを消費した後、メッセージを確認するか、Nack してキューからメッセージを削除する必要があります。 ack メソッドを使用してメッセージを確認し、nack メソッドを使用してメッセージを拒否できます。
この例では、メッセージを消費した後にメッセージを確認します。
const amqp = require("amqplib"); const connect = async (url) => { const connection = await amqp.connect(url); const channel = await connection.createChannel(); return channel; }; connect("amqp://localhost:5672").then((channel) => { console.log("Connected to RabbitMQ"); channel.assertQueue("mq-test-queue"); console.log("Queue created"); channel.sendToQueue("mq-test-queue", Buffer.from("Hello World!")); console.log("Message sent"); channel.consume("mq-test-queue", (msg) => { console.log("Message received", msg.content.toString()); channel.ack(msg); }); });
キューからメッセージが正常に送受信されたことがわかります。 Rabbitmq 管理コンソールを使用します。
この記事では、amqplib ライブラリを使用して RabbitMq をセットアップし、NodeJ から RabbitMq と対話する方法を学びました。キューを作成し、キューにメッセージを送信し、キューからメッセージを受信しました。
以上がNodeJs を使用して RabbitMq を始めるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。