개요
메시지큐를 간단하게 사용해보고 싶어서 RabbitMQ를 설치하려고 합니다.
차근차근 같이 설치하고 실행도 해봅시다.
목차는 다음과 같습니다.
- RabbitMQ 설치
- 실행
- 포그라운드 실행
- 백그라운드 실행
- GUI 관리 페이지 확인
- 유저 생성 및 삭제
- GUI로 유저 생성 및 삭제
- CLI로 유저 생성 및 삭제
1. RabbitMQ 설치
hombrew를 설치해놨다면 rabbitmq 설치는 간단합니다.
터미널을 열고 brew install rabbitmq를 입력하면 됩니다.
# 설치 전에 업데이트할 항목이 있는지 확인하고 업데이트 해줍시다.
brew update
# rabbitmq 설치 명령어입니다.
brew install rabbitmq
설치를 완료하면 위처럼 완료 메시지를 볼 수 있습니다.
- 기본 포트: 15672
- 포그라운드 실행: 위 설치 위치에서 rabbitmq-server를 실행
- 백그라운드 실행: brew services restart rabbitmq
저희가 확인해야 하는 내용은 이 정도겠네요.
2. 실행
자, 그럼 설치도 마쳤으니 서버를 실행시켜봅시다.
2.1 포그라운드 실행
우선 포그라운드로 돌려볼까요.
rabbitmq-server 명령어를 터미널에 입력하면 되는 것 같습니다.
자신감 넘치게 위에서 알려준 명령어를 치면 이렇게 실패합니다.
저는 환경변수로 /usr/local/opt/rabbitmq/sbin/을 등록해놓지 않았기 때문이에요.
환경변수를 추가하는건 귀찮으니, 설치를 완료했을 때 알려준 path를 그대로 복사해서 실행하겠습니다. (혹은 해당 path로 이동하셔도 좋습니다.)
> /usr/local/opt/rabbitmq/sbin/rabbitmq-server
2021-11-24 18:32:46.526909+09:00 [info] <0.221.0> Feature flags: list of feature flags found:
2021-11-24 18:32:46.538001+09:00 [info] <0.221.0> Feature flags: [ ] implicit_default_bindings
2021-11-24 18:32:46.538042+09:00 [info] <0.221.0> Feature flags: [ ] maintenance_mode_status
2021-11-24 18:32:46.538059+09:00 [info] <0.221.0> Feature flags: [ ] quorum_queue
2021-11-24 18:32:46.538074+09:00 [info] <0.221.0> Feature flags: [ ] stream_queue
2021-11-24 18:32:46.538126+09:00 [info] <0.221.0> Feature flags: [ ] user_limits
2021-11-24 18:32:46.538137+09:00 [info] <0.221.0> Feature flags: [ ] virtual_host_metadata
2021-11-24 18:32:46.538151+09:00 [info] <0.221.0> Feature flags: feature flag states written to disk: yes
2021-11-24 18:32:46.872761+09:00 [noti] <0.44.0> Application syslog exited with reason: stopped
2021-11-24 18:32:46.872827+09:00 [noti] <0.221.0> Logging: switching to configured handler(s); following messages may not be visible in this log output
## ## RabbitMQ 3.9.10
## ##
########## Copyright (c) 2007-2021 VMware, Inc. or its affiliates.
###### ##
########## Licensed under the MPL 2.0. Website: https://rabbitmq.com
Erlang: 24.1.7 [jit]
TLS Library: OpenSSL - OpenSSL 1.1.1l 24 Aug 2021
Doc guides: https://rabbitmq.com/documentation.html
Support: https://rabbitmq.com/contact.html
Tutorials: https://rabbitmq.com/getstarted.html
Monitoring: https://rabbitmq.com/monitoring.html
Logs: /usr/local/var/log/rabbitmq/rabbit@localhost.log
/usr/local/var/log/rabbitmq/rabbit@localhost_upgrade.log
<stdout>
Config file(s): (none)
Starting broker... completed with 7 plugins.
터미널에 위 처럼 출력된다면 실행 성공입니다~
2.2 백그라운드 실행
다만! 포그라운드로 서버를 계속 띄워놓는 건 꽤나 불편합니다.
집중적으로 터미널에 출력되는 로그를 확인해야 하는 게 아닌 이상, 백그라운드로 서버를 돌려놓고 다른 작업을 할 수 있다면 더욱 좋겠죠?
그래서 이번에는 백그라운드로 서버를 돌려보도록 하겠습니다.
rabbitmq 서버를 백그라운드로 돌리는 방법은 더 쉽습니다.
터미널에 brew services restart rabbitmq 를 입력하면 됩니다.
> brew services restart rabbitmq
==> Tapping homebrew/services
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
remote: Enumerating objects: 1535, done.
remote: Counting objects: 100% (414/414), done.
remote: Compressing objects: 100% (303/303), done.
remote: Total 1535 (delta 171), reused 283 (delta 101), pack-reused 1121
Receiving objects: 100% (1535/1535), 448.66 KiB | 1.31 MiB/s, done.
Resolving deltas: 100% (648/648), done.
Tapped 1 command (38 files, 558.7KB).
==> Successfully ran `rabbitmq` (label: homebrew.mxcl.rabbitmq)
3. GUI 관리 페이지 확인
서버를 실행했다면 15672 포트로 gui 관리자 페이지에 접속할 수 있습니다.
브라우저에서 http://localhost:15672로 접속하면 됩니다.
처음 설치를 하면 초기로 주어지는 계정의 아이디와 비밀번호는 guest입니다.
로그인하면 위처럼 rabbitmq 서버의 상황을 한눈에 파악할 수 있습니다.
4. 유저 생성
하지만 초기값으로 주어진 계정을 그대로 사용하는건 아무래도 찝찝합니다.
그래서 새로운 계정을 생성하고 관리자 권한을 준 뒤, 초기값으로 생성된 guest 계정은 삭제하도록 하겠습니다.
default로 GUI옵션이 활성화 되어있기 때문에 관리 페이지에서 작업할 수도 있고, 터미널 상에서 명령어로 작업할 수도 있습니다.
한 번씩 다 해보도록 합시다.
4.1 GUI로 유저 생성 및 삭제
http://localhost:15672로 접속한 뒤, guest계정으로 로그인합시다.
로그인 한 뒤, 상단에 Admin 탭으로 이동하면 아래와 같이 RabbitMQ서버에 등록된 계정을 확인할 수 있습니다.
하단에 Add a user를 클릭해서 계정을 추가해봅시다.
위에서부터 차례대로 id, pw, pw 확인, 권한입니다.
권한은 Set Admin | Monitoring | Policymaker | Management |Impersonator | None이 있네요.
권한별 특징은 회색 박스를 클릭하면 확인할 수 있습니다.
저는 user라는 계정에 Admin권한을 줘서 생성해보도록 하겠습니다.
Add user를 누르면 계정이 추가됩니다.
4.2 CLI로 유저 생성 및 삭제
이번에는 cli로 유저를 생성해봅시다. 터미널로 유저를 생성하고 권한을 설정하기 위해서는 rabbitmqctl을 사용해야 합니다.
이 놈 역시 rabbitmq-server와 같은 path에 존재하기 때문에 이전에 해당 path를 환경 변수로 등록했다면!
# 이렇게 계정을 추가할 수 있습니다.
rabbitmqctl add_user {id} {pw}
path를 환경 변수로 등록하지 않았다면 저처럼 하면 됩니다.
/usr/local/opt/rabbitmq/sbin/rabbitmqctl add_user user2 123456
Adding user "user2" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
계정은 생성됐으니 권한만 설정하면 됩니다.
권한은 rabbitmqctl set_user_tags {id} {권한}으로 추가할 수 있습니다.
# rabbitmqctl set_user_tags {id} {권한}
/usr/local/opt/rabbitmq/sbin/rabbitmqctl set_user_tags user2 administrator
Setting tags for user "user2" to [administrator] ...
이 외에도 rabbitmqctl을 통해 사용할 수 있는 명령어는 다음과 같습니다.
- add_user {id} {pw}: 유저 추가
- delete_user {id}: 유저 삭제
- set_user_tags {id} {권한}: 유저 권한 설정
- list_users: 유저 목록
user2 계정이 잘 생성되었는지 rabbitmqctl list_users를 입력해서 확인해봅시다.
이어서 cli로 guest 계정을 삭제해봅시다.
삭제는 rabbitmqctl delete_user {id}를 이용하면 됩니다.
삭제 후 다시 유저 목록을 확인하면 guest 계정이 지워진 것을 확인할 수 있습니다.
여기까지 따라왔다면 설치와 실행 모두 문제가 없었을 거라고 생각합니다~
rabbitmq 설치, 실행, 유저 생성에 대해서 가볍게 다뤄봤습니다.
추가로 궁금한 내용은 rabbitmq 공식 사이트에서 확인하시면 좋을 것 같습니다.
Messaging that just works — RabbitMQ
Developer Experience Deploy with BOSH, Chef, Docker and Puppet. Develop cross-language messaging with favorite programming languages such as: Java, .NET, PHP, Python, JavaScript, Ruby, Go, and many others.
www.rabbitmq.com
다음에는 RabbitMQ 공식 사이트에서 제공하는 예제 프로젝트를 진행하도록 하겠습니다.
안녕~
'개발' 카테고리의 다른 글
[K8S] Node Affinity 간단하게 사용해보기 (2) | 2024.01.30 |
---|---|
[RabbitMQ] - 3. Spring boot로 Work Queue에 다수의 consumer를 등록하여 task 처리하기 (1) | 2024.01.14 |
JPQL - Fetch join? with 테스트 코드 (0) | 2022.04.03 |
[RabbitMQ] - 2. Spring boot로 RabbitMQ 사용하기(hello world!) (3) | 2021.11.30 |
CentOS7 MySQL 포트 변경하며 생긴 이슈 (2) | 2021.05.07 |