해당 글에서는 Spring Boot AMQP의 RabbitMQ를 실제 로컬 환경에 구현하는 방법에 대해서 알아봅니다.
💡 [참고] RabbitMQ에 대해 궁금하시면 아래의 글이 도움이 됩니다.
분류 | 링크 |
Spring Boot AMQP RabbitMQ -1 : 구조 및 종류 이해하기 | https://adjh54.tistory.com/284 |
Spring Boot AMQP RabbitMQ -2 : 로컬 환경 구성하기 | https://adjh54.tistory.com/285 |
Spring Boot AMQP RabbitMQ -3 : Java 환경 구축 및 간단 예시 | https://adjh54.tistory.com/292 |
Spring Boot AMQP RabbitMQ -4 : Exchange 종류 별 이해 및 사용예시 | https://adjh54.tistory.com/497 |
Spring Boot AMQP RabbitMQ -5 : TTL 및 데드 레터링 사용예시 | https://adjh54.tistory.com/501 |
Spring Boot AMQP RabbitMQ -6 : 메시지 큐 종류, 큐 우선순위 | https://adjh54.tistory.com/518 |
Docker : Docker를 이용하여 RabbitMQ 구축하기 | https://adjh54.tistory.com/496 |
Docker : Docker Compose를 이용하여 RabbitMQ Node Cluster 구축하기 | https://adjh54.tistory.com/517 |
API Document : QueueBuilder API Document | https://adjh54.tistory.com/505 |
API Document : ExchangeBuilder API Document | https://adjh54.tistory.com/506 |
API Document : MessageProperties, MessagePropertiesBuilder, MessageBuilderSupport | https://adjh54.tistory.com/508 |
Spring Boot AMQP RabbitMQ Github : Event Producer | https://github.com/adjh54ir/blog-codes/tree/main/spring-boot-rabbitmq |
Spring Boot AMQP RabbitMQ Github : Event Consumer | https://github.com/adjh54ir/blog-codes/tree/main/spring-boot-rabbitmq-consumer |
1) RabbitMQ 다운로드 및 초기 설정
1. homebrew를 이용하여 RabbitMQ를 설치합니다.
# rabbitmq를 설치합니다.
$ brew update && brew install rabbitmq
# rabbitmq 버전을 연결합니다.
$ brew link rabbitmq
💡 [참고] 아래의 링크에서 다운로드하여 설치하셔도 됩니다.
Downloading and Installing RabbitMQ — RabbitMQ
Downloading and Installing RabbitMQ The latest release of RabbitMQ is 3.12.6. See change log for release notes. See RabbitMQ support timeline to find out what release series are supported. Experimenting with RabbitMQ on your workstation? Try the community
www.rabbitmq.com
2-1. forground 모드 실행 방법
💡 forground 모드 실행 방법
- foreground 모드로 실행하면 '터미널을 열어둔 상태'가 되어야 계속 유지해야 rabbitmq 서버가 유지가 됩니다.
The Homebrew RabbitMQ Formula — RabbitMQ
The Homebrew RabbitMQ Formula Homebrew is a popular package manager for macOS. RabbitMQ formula is available from Homebrews core tap (out of the box). The formula will also install a recent supported Erlang/OTP version as a dependency. Before installing ma
www.rabbitmq.com
1. zshell 파일을 엽니다.
$ vi ~/.zshrc
2. zshell 파일을 수정합니다.
# for macOS Intel
export PATH=$PATH:/usr/local/sbin
# for Apple Silicon
export PATH=$PATH:/opt/homebrew/sbin
3. zshell 파일을 적용합니다.
source ~/.zshrc
4. forground에서 서버를 실행합니다.
$ rabbitmq-server
💡 [참고] ERROR: could not bind to distribution port 25672, it is in use by another node: rabbit@localhost
- 백그라운드 실행이 되어 있는 경우 종료를 시켜주고 실행합니다.
$ brew services stop rabbitmq
2-2. background 모드 실행 방법
💡 background 모드 실행 방법
- background 모드로 실행하면 '서비스'로 실행이 되며 터미널 세션을 닫아도 rabbitmq가 계속 유지됩니다.
# 서비스로 rabbitmq를 실행합니다
$ brew services start rabbitmq
# 실행중인 서비스 리스트를 조회합니다.
$ brew services list
💡 [참고] Window 개발 환경에서 설정하는 방법은 아래의 글을 참고하시면 도움이 됩니다.
Installing on Windows Manually — RabbitMQ
Installing on Windows Manually This guide describes how RabbitMQ can be installed and configured manually on Windows. In general we recommend using one the more automation-friendly options for Windows when possible. RabbitMQ requires a 64-bit supported ver
www.rabbitmq.com
💡 [참고] RabbitMQ를 실행하기 이전에 RabbitMQ CLI(Command-Line-Interface)에 대해서 알아보고 수행합니다.
2) RabbitMQ CLI(Command-Line-Interface)
💡 RabbitMQ CLI(Command-Line-Interface)
- RabbitMQ 메시지 브로커와 커맨드 라인에서 상호작용할 수 있는 도구입니다. 이 도구는 큐 생성, 메시지 발행, 메시지 소비, 교환 관리 등과 같은 작업을 수행하고 RabbitMQ 리소스를 관리하기 위해 사용할 수 있는 다양한 명령어를 제공합니다.
1. RabbitMQ CLI 명령어
rabbitmqctl 명령어 | 설명 |
rabbitmqctl start_app | rabbitMQ 애플리케이션 시작 |
rabbitmqctl stop_app | rabbitMQ 애플리케이션 정지 |
rabbitmqctl list_queues | 큐 목록 표시 |
rabbitmqctl list_exchanges | 익스체인지 목록 표시 |
rabbitmqctl list_bindings | 바인딩 목록 표시 |
rabbitmqctl list_connections | 커넥션 목록 표시 |
rabbitmqctl list_channels | 채널 목록 표시 |
rabbitmqctl list_consumers | 컨슈머 목록 표시 |
rabbitmqctl list_vhosts | 가상 호스트 목록 표시 |
rabbitmqctl list_users | 유저 목록 표시 |
rabbitmqctl list_permissions | 퍼미션 목록 표시 |
rabbitmqctl status | 상태 정보 표시 |
2. RabbitMQ 사용자 관련 명령어
rabbitmqctl 명령어 | 명령어 설명 | rabbitmqctl 명령어 응용 |
rabbitmqctl list_users | 사용자 목록 조회 | |
rabbitmqctl add_user | 사용자 추가 | rabbitmqctl add_user <username> <password> |
rabbitmqctl delete_user | 사용자 삭제 | rabbitmqctl delete_user <username> |
rabbitmqctl change_password | 사용자 비밀번호 변경 | rabbitmqctl change_password <username> <new_password> |
rabbitmqctl set_user_tags | 사용자 태그 설정 | rabbitmqctl set_user_tags <username> <tag> |
rabbitmqctl clear_user_tags | 사용자 태그 제거 | rabbitmqctl clear_user_tags <username> |
rabbitmqctl set_permissions -p | 사용자 권한 설정 | rabbitmqctl set_permissions -p <vhost> <username> <conf> <write> <read> |
rabbitmqctl clear_permissions -p | 사용자 권한 제거 | rabbitmqctl clear_permissions -p <vhost> <username> |
3) RabbitMQ 사용자 생성 및 권한 부여
1. 최초 로그인 화면으로 접속합니다.
💡 로컬 RabbitMQ 경로는 http://localhost:15672/ 입니다.
2. 로그인을 수행합니다.
💡 기본 사용자 아이디와 비밀번호로 최초 로그인을 수행할 때 접속이 가능합니다. 관리자 권한을 가진 유저로 외부에서는 접속할 수 없습니다.
분류 | 설명 |
ID | guest |
PW | guest |
3. 사용자 아이디 생성 및 확인
💡 RabbitMQ 내의 사용자 아이디를 생성하고 조회합니다.
# 사용자 아이디를 생성합니다.
$ rabbitmqctl add_user admin admin
# 사용자 리스트를 조회합니다.
$ rabbitmqctl list_users
4. 사용자에 대해 권한을 부여합니다.
💡 RabbitMQ내의 사용자 아이디에 대한 권한을 부여합니다.
# format
$ rabbitmqctl set_user_tags <username> administrator
# 사용자에 대해 권한 부여
$ rabbitmqctl set_user_tags admin administrator
# 사용자 리스트를 조회합니다.
$ rabbitmqctl list_users
💡 [참고] 권한의 종류
권한 종류 | 설명 |
Admin | RabbitMQ의 모든 권한을 가지고 있으며, 모든 동작을 수행할 수 있습니다. |
Monitoring | RabbitMQ의 상태 및 성능에 대한 모니터링을 수행할 수 있습니다. |
Policymaker | RabbitMQ의 정책을 관리하고 설정할 수 있습니다. |
Management | RabbitMQ의 관리 작업을 수행할 수 있습니다. |
Impersonator | 다른 사용자로서 RabbitMQ에 대한 동작을 수행할 수 있습니다. |
None | 어떤 권한도 가지고 있지 않습니다. |
5. 가상 호스트(Virtual Host) 권한 지정
💡 가상 호스트(Virtual Host)
- 논리적인 메시지 브로커를 나타내는 개념을 의미합니다.
- 가상 호스트를 사용하면 RabbitMQ 서버에서 독립된 메시지 브로커를 구성할 수 있습니다. 각 가상 호스트는 독립된 사용자, 교환기, 큐 및 권한을 가지고 있습니다. 이를 통해 여러 개의 독립된 애플리케이션 또는 팀이 RabbitMQ를 사용할 수 있습니다.
# 가상 호스트 지정 format
$ rabbitmqctl set_permissions -p <vhost> <username> <conf> <write> <read>
# 가상 호스트 권한 지정
$ rabbitmqctl set_permissions -p / "admin" ".*" ".*" ".*"
# 가상 호스트 목록
$ rabbitmqctl list_permissions
6. 사용자 목록을 웹 내에서 확인하고 관리가 가능합니다.
💡 [참고] Spring Boot AMQP RabbitMQ에 대해 더 궁금하시면 아래의 글을 참고하시면 도움이 됩니다.
구분 | 링크 |
Spring Boot AMQP RabbitMQ-1 : 구조 및 종류 | https://adjh54.tistory.com/284 |
Spring Boot AMQP RabbitMQ-2 : 로컬환경 구성 | https://adjh54.tistory.com/285 |
Spring Boot AMQP RabbitMQ-3: Java 구축 및 간단 예제 | https://adjh54.tistory.com/292 |
오늘도 감사합니다. 😀
'Java > Message Queue' 카테고리의 다른 글
[Java] Spring Boot AMQP RabbitMQ 이해하기 -6 : 메시지 큐 종류, 큐 우선순위 (0) | 2024.06.29 |
---|---|
[Java] Spring Boot AMQP RabbitMQ 이해하기 -5 : TTL 및 데드 레터링 사용예시 (0) | 2024.06.05 |
[Java] Spring Boot AMQP RabbitMQ 이해하기 -4 : RabbitMQ Exchange 종류 별 이해 및 사용예시 (0) | 2024.05.30 |
[Java] Spring Boot AMQP RabbitMQ 이해하기 -3 : Java 구축 및 간단 예제 (0) | 2023.10.21 |
[Java] Spring Boot AMQP RabbitMQ 이해하기 -1 : 구조 및 종류 (1) | 2023.10.14 |