300x250
반응형
설치 요약
# 인스톨
sudo apt install rabbitmq-server
# 매니지먼트 플러그인 활성화
sudo rabbitmq-plugins enable rabbitmq_management
# 유저 추가 (guest 유저는 로컬에서만 접근)
sudo rabbitmqctl add_user username 'passwd'
# 유저에 권한 부여
sudo rabbitmqctl set_user_tags username administrator
# 포트 방화벽 열기
~$ sudo iptables -I INPUT -p tcp --dport 5672 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
~$ sudo iptables -I OUTPUT -p tcp --sport 5672 -m conntrack --ctstate ESTABLISHED -j ACCEPT
~$ sudo iptables -I INPUT -p tcp --dport 15672 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
~$ sudo iptables -I OUTPUT -p tcp --sport 15672 -m conntrack --ctstate ESTABLISHED -j ACCEPT
프로토콜별 기본 포트
- 5672 : AMQP 포트
- 15672 : 웹 관리 콘솔
- 4369 : EPMD (Erlang Port Mapper Daemon)
- 1883 : MQTT 접속 포트
MQ 구조와 Exchange Type
- work queues < exchange 안씀
- pub/sub <- fan out (바인딩된 모든 큐로 보냄)
- routing <- direct +routing Key (라우팅 키에 따라 특정 큐로 보냄)
- topic <- topic +routing Key (*.str.# 패턴을 충족하는 모든 큐로 보냄)
- rpc <- reply_queue/correlation_id
- Header Exchange
Queue 속성
- Duriability
- durable : 메세지를 디스크에 저장
- transient : 메세지를 메모리에 저장
- Auto delete
- 모든 컨슈머가 subscribe하면 해당 큐는 자동으로 없어진다
- Arguments
- 메시지 TTL, Max Length 등 추가기능 명시
Channels
- 컨슈머 앱에서 브로커로 많은 연결을 맺는 것은 바람직하지 않다
- channel 개념을 통해 하나의 tcp 연결을 공유하여 사용
- 멀티 스레드, 멀티 프로세스 사용시에는 별도의 채널 사용하는 것이 바람직
참고
https://www.rabbitmq.com/getstarted.html
https://oingdaddy.tistory.com/166
https://shortstories.gitbooks.io/studybook/content/message_queue_c815_b9ac/rabbitmq-c0bd-c9c8.html
https://jonnung.dev/rabbitmq/2019/02/06/about-amqp-implementtation-of-rabbitmq/
300x250
반응형
'IT > 서버' 카테고리의 다른 글
nginx 웹소켓 proxy_pass 및 timeout 설정 (0) | 2022.10.18 |
---|---|
우분투에서 포트 사용중인 프로세스 확인하기 (0) | 2022.06.22 |
RabbitMQ 스프링에서 큐 만들고 바인딩 하기 +큐 삭제하기 (0) | 2022.06.02 |
RabbitMQ 서버 ubuntu linux에 설치 (0) | 2022.05.26 |
chrome err_unsafe_port 6000 (0) | 2022.04.07 |