Search
Duplicate

RabitMQ Quick Start

설치 (도커)

command
docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 rabbitmq:3-management
Bash
복사
my case
docker run -d --hostname parkjw --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
Bash
복사

참고

기본 관리자 계정은 guest / guest 이다. (guest의 권한은 administrator)
디폴트 계정인 guest를 삭제하고 새로운 관리자 계정을 추가하자.
rabbitmq management를 설치하면 CLI Tool인 rabbitmqctl을 제공한다.
빠른 작업을 위해 rabbitmqcli command 기준으로 작성하겠다.

사용자 삭제

command
rabbitmqctl delete_user username
Bash
복사
my case
rabbitmqctl delete_user guest
Bash
복사

사용자 추가

command
rabbitmqctl add_user username mypassword
Bash
복사
my case
rabbitmqctl add_user pjw password Adding user "pjw" ... Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
Bash
복사

사용자 역할 지정

command
rabbitmqctl set_user_tags username tags
Bash
복사
administratior
monitoring
policymaker
management
none
my case
rabbitmqctl set_user_tags pjw administrator Setting tags for user "pjw" to [administrator] ...
Bash
복사

사용자 비밀번호 변경

command
rabbitmqctl change_password username newpassword
Bash
복사

사용자 리스트 확인

command
rabbitmqctl list_users Listing users ... user tags pjw [administrator]
Bash
복사

사용자 vhost 권한 설정

command
rabbitmqctl set_permissions [-p <virtualpath>] <user> <conf> <write> <read>
Bash
복사
my case
rabbitmqctl set_permissions -p / "pjw" ".*" ".*" ".*" Setting permissions for user "pjw" in vhost "/" ...
Bash
복사

사용자 권한 확인

command
rabbitmqctl list_permissions Listing permissions for vhost "/" ... user configure write read pjw .* .* .*
Bash
복사

사용자 인증 체크

command
rabbitmqctl authenticate_user username
Bash
복사
my case
rabbitmqctl authenticate_user pjw Authenticating user "pjw" ... Password: mypassword Success Authenticating user "pjw" ... Password: wrongpassword Error: Error: failed to authenticate user "pjw" user 'pjw' - invalid credentials
Bash
복사

큐 삭제

command
rabbitmqctl delete_queue queue_name
Bash
복사
my case
rabbitmqctl delete_queue MSG
Bash
복사

초기화 (사용자 및 Queue)

command
rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl start_app
Bash
복사

RabbitMQ 매니저 페이지 접속 및 로그인

Queue 생성

Click "Add queue"

큐 모니터링

Publish message

큐에 메시지를 발행한다. 쉽게 표현하면 큐에 메시지를 넣는다고 생각하면 된다.
큐에 메시지가 하나 들어갔다.
메시지를 하나 더 발행해보자.
큐에 메시지가 두 개 들어가있다.

Get message

말 그대로 큐에서 메시지를 꺼내는 것을 의미한다.

Nack message requeue true

queue에서 메시지를 가져온 후 다시 원래의 위치(인덱스)에 돌려 넣는다.
메시지를 하나 꺼내보자.
큐는 선입선출(FIFO) 자료 구조이므로 먼저 발행한 TEST_MSG_1이 나왔다.
여전히 큐의 메시지 개수는 2개이다.
다시 한번 메시지를 꺼내 보자.
여전히 TEST_MSG_1이 나온다.
왜냐하면 큐에서 메시지를 가져온 후 원래 위치에 다시 넣었기 때문이다.

Ack message requeue false

queue에서 메시지를 가져온 후 큐에서 제거한다.
큐에서 메시지 하나를 꺼내보자.
흐으음
큐의 메시지 개수가 2개에서 1개로 변했다.
다시 한번 큐에서 메시지를 꺼내보자.
먼저 넣었던 TEST_MSG_1이 아닌 TEST_MSG_2가 나왔다.
이전에 requeue false mode 로 메시지를 꺼냈기 때문에
TEST_MSG_1는 꺼냄과 동시에 큐에서 제거가 되었기 때문이다.
큐에 메시지가 모두 사라졌다.