"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > NodeJ를 사용하여 RabbitMq 시작하기

NodeJ를 사용하여 RabbitMq 시작하기

2024-11-06에 게시됨
검색:889

RabbitMq 소개

RabbitMq는 서로 다른 서비스 간에 메시지를 주고받을 수 있는 메시지 브로커입니다. AMQP(Advanced Message Queuing Protocol)를 구현하는 메시지 브로커입니다. Erlang 프로그래밍 언어로 작성되었습니다.

RabbitMq 설치

RabbitMq는 해당 패키지 관리자를 사용하여 다른 운영 체제에 설치할 수 있습니다. RabbitMQ를 사용하려면 사전에 Erlang/OTP 설치가 필요합니다. 자세한 내용은 공식 문서를 참고하세요.

  • 리눅스
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 설정하기

NodeJs에서 RabbitMq와 상호작용하려면 amqplib 라이브러리를 사용할 수 있습니다. 다음 명령을 사용하여 라이브러리를 설치할 수 있습니다:

npm install amqplib

NodeJs에서 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 메서드를 사용했습니다.

큐에서 메시지를 받으려면 소비 메소드를 사용할 수 있습니다.

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

consum 메소드는 콜백 함수를 사용하고 메시지 객체를 콜백 함수에 전달하여 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