무지개곰
article thumbnail
Published 2024. 10. 1. 00:03
[linux] rabbitMQ 알아보기 Linux
반응형

RabbitMQ란?

rabbitMQ는 오픈 소스 메시지 브로커 소프트웨어로, 여러 애플리케이션 간의 메시지를 교환하거나 큐를 통해 비동기적으로 데이터를 전달하는 데 사용됩니다.

AMQP(Advanced Message Queuing Protocol)를 기본 프로토콜로 사용하며 메시지 전송을 관리하며, 신뢰성 있는 메시징을 제공하기 때문에 마이크로 서비스 아키텍처에서 중요한 역할을 합니다.


RabbitMQ의 주요 개념

프로듀서(Producer) : 메시지를 생성하여 RabbitMQ로 보내는 애플리케이션

큐(Queue) : 메시지가 저장되는 대기열로, 메시지를 임시 저장하고 메시지를 받을 때까지 유지

컨슈머(Consumer) : 큐에서 메시지를 받아 처리하는 애플리케이션

익스체인지(Exchange) : 메시지를 받아서 큐로 라우팅 하는 역할로, 라우팅 규칙은 exchagne 타입에 따라 달라진다.

 

*exchange 타입에 대하여 다음 글에서 정리하도록 하겠습니다.


RabbitMQ 주요 명령어

rabbitmqctl 명령어

  • rabbitmqctl status : RabbitMQ 서버의 상태 및 정보를 확인. 클러스터 정보, 노드 상태, 연결 상태 등을 표시
  • rabbitmqctl list_users : RabbitMQ에 생성된 사용자를 조회할 수 있음
  • rabbitmqctl add_user <username> <password> : RabbitMQ에 새로운 사용자 추가
  • rabbitmqctl delete_user <username> : 특정 사용자를 삭제
  • rabbitmqctl set_permissions -p <vhost> <username> ".* ".*" ".*" : 사용자에게 특정 가상 호스트에 대한 읽기, 쓰기 관리 권한을 부여
  • rabbitmqctl list_queues : RabbitMQ에 생성된 큐를 나열, 큐의 이름과 현재 메시지 수 등도 함께 표시
  • rabbitmqctl list_exchanges : 현재 RabbitMQ 서버에 생성된 exchange를 나열
  • rabbitmqctl list_connections : RabbitMQ 서버에 연결된 모든 클라이언트 연결 상태를 나열
  • rabbitmqctl cluster_status : RabbitMQ 클러스터의 상태를 보여줌, 노드 및 연결 상태를 확인 가능
  • rabbitmqctl stop : 현재 노드를 안전하게 종료

rabbitmq-plugins 명령어

  • rabbitmq-plugins list : 설치된 모든 플러그인과 현재 상태를 나열
  • rabbitmq-plugins enable <plugin_name> : 특정 플러그인을 활성화
  • rabbitmq-plugins disable <plugin_name> : 특정 플러그인 비활성화

rabbitmq-diagnostics 명령어

  • rabbitmq-diagnostics memory_breakdown : RabbitMQ 서버가 사용하는 메모리의 분포를 확인
  • rabbitmq-diagnositcs disk_space : RabbitMQ 서버의 디스크 공간 상태를 확인
  • rabbitmq-diagnostics check_alarms : 현재 RabbitMQ 서버에 설정된 알람이 있는지 확인
  • rabbitmq-diagnostics server_version : 현재 실행 중인 RabbitMQ 서버의 버전 정보를 확인

rabbitmq-queues 명령어

  • rabbitmq-queues status <queue_name> : 특정 큐의 상태를 확인, 메시지 수, 대기시간 등을 볼 수 있음

RabbitMQ는 다양한 애플리케이션 간의 신뢰성 있는 비동기 메시지 전송을 가능하게 하며, 특히 마이크로 서비스 아키텍처에서 중요한 역할을 합니다.

 

* 비동기 메시지는 프로듀서가 메시지를 전송하고 컨슈머가 해당 메시지를 나중에 처리하는 방식으로  컨슈머가 다운되거나 느려져도 프로듀서는 큐에 메시지를 쌓아둘 수 있고 컨슈머가 처리한 후 큐에서 메시지를 제거하는 방식

반응형
profile

무지개곰

@무지개곰

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!