「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > NodeJs を使用して RabbitMq を始める

NodeJs を使用して RabbitMq を始める

2024 年 11 月 6 日に公開
ブラウズ:774

RabbitMq の紹介

RabbitMq は、異なるサービス間でメッセージを送受信できるメッセージ ブローカーです。これは、Advanced Message Queuing Protocol (AMQP) を実装するメッセージ ブローカーです。 Erlang プログラミング言語で書かれています。

RabbitMq のインストール

RabbitMq は、それぞれのパッケージ マネージャーを使用して、さまざまなオペレーティング システムにインストールできます。 RabbitMQ では事前に Erlang/OTP をインストールする必要があります。詳細については、公式ドキュメントを参照してください。

  • Linux
sudo apt-get install rabbitmq-server
  • マック
brew install rabbitmq

インストールしたら、次のコマンドを使用して RabbitMq サーバーを起動できます:

sudo rabbitmq-server

Getting started with RabbitMq using NodeJs

サーバーが起動したら、デフォルトのポート 5672 を使用してアプリケーションから Rabbitmq にアクセスできます。

RabbitMq 管理コンソールを有効にするには、次のコマンドを実行します:

sudo rabbitmq-plugins enable rabbitmq_management

ブラウザで http://localhost:15672/ にアクセスすると、RabbitMq 管理コンソールにアクセスできます。デフォルトのユーザー名とパスワードは guest.

です。

Getting started with RabbitMq using NodeJs

NodeJs を使用した RabbitMq のセットアップ

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());
  });
});

consume メソッドはコールバック関数を受け取り、メッセージ オブジェクトをコールバック関数に渡し、msg.content.toString() を使用してメッセージ コンテンツにアクセスします。

メッセージを消費した後、メッセージを確認または確認してキューからメッセージを削除する必要があります。 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);
  });
});

Getting started with RabbitMq using NodeJs

キューからメッセージが正常に送受信されたことがわかります。 Rabbitmq 管理コンソールを使用します。

結論

この記事では、amqplib ライブラリを使用して RabbitMq をセットアップし、NodeJ から RabbitMq と対話する方法を学びました。キューを作成し、キューにメッセージを送信し、キューからメッセージを受信しました。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/itsvinayak/getting-started-with-rabbitmq-using-nodejs-f17?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3