NodeJs を使用して RabbitMq を始める

王林
リリース: 2024-09-07 15:00:37
オリジナル
376 人が閲覧しました

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());
  });
});
ログイン後にコピー

消費メソッドはコールバック関数を受け取り、メッセージ オブジェクトをコールバック関数に渡し、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);
  });
});
ログイン後にコピー

Getting started with RabbitMq using NodeJs

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

結論

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

以上がNodeJs を使用して RabbitMq を始めるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート