Skip to content

rabbit mq 사용법

ez edited this page Nov 16, 2024 · 1 revision

rabbit mq 설치

docker를 사용하면 rabbit mq를 쉽게 설치할 수 있다.

docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4.0-management

포트 두 개를 열어주고 있는데 5672 포트는 AMQP 포트이고 15672는 management 서비스 포트입니다.

rabbit mq 사용해보기

Hello World!

The simplest thing that does something.

image

rabbit mq를 사용하는 가장 간단한 방법입니다.

  1. P(Prodoucer) : 메시지를 생산해서 큐에 넣어주는 주체
  2. queue : 메시지를 보관하는 장소
  3. C(Consumer) : 큐에서 메시지를 꺼내오는 주체

rabbit mq producer 코드 작성

amqplib 패키지를 설치합니다.

yarn add amqplib

연결, 채널 생성, 큐 생성 후 메시지를 전송합니다.

var amqp = require('amqplib/callback_api');

// 서버 연결 및 채널 생성
amqp.connect('amqp://localhost', function(error0, connection) {
  if (error0) {
    throw error0;
  }
  connection.createChannel(function(error1, channel) {
    if (error1) {
      throw error1;
    }

    // 큐를 선언한다. 
    var queue = 'hello';
    channel.assertQueue(queue, {
      durable: false
    });

    // 메시지를 채널로 보낸다.
    var msg = 'Hello world';
    channel.sendToQueue(queue, Buffer.from(msg));
    console.log(" [x] Sent %s", msg);
  });
});

rabbit mq consumer 코드 작성

amqplib 패키지를 설치합니다.

yarn add amqplib

연결, 채널 생성, 큐 생성 후 메시지를 수신합니다.

var amqp = require("amqplib/callback_api");

// 서버 연결 및 채널 생성
amqp.connect("amqp://localhost", function (error0, connection) {
  if (error0) {
    throw error0;
  }
  connection.createChannel(function (error1, channel) {
    if (error1) {
      throw error1;
    }
    var queue = "hello";

    channel.assertQueue(queue, {
      durable: false,
    });
    console.log(" [*] Waiting for messages in %s. To exit press CTRL+C", queue);
    channel.consume(
      queue,
      function (msg) {
        console.log(" [x] Received %s", msg.content.toString());
      },
      {
        noAck: true,
      }
    );
  });
});

개발 문서

⚓️ 사용자 피드백과 버그 기록
👷🏻 기술적 도전
📖 위키와 학습정리
🚧 트러블슈팅

팀 문화

🧸 팀원 소개
⛺️ 그라운드 룰
🍞 커밋 컨벤션
🧈 이슈, PR 컨벤션
🥞 브랜치 전략

그룹 기록

📢 발표 자료
🌤️ 데일리 스크럼
📑 회의록
🏖️ 그룹 회고
🚸 멘토링 일지
Clone this wiki locally