RabbitMQ(11)
-
[RabbitMQ #99] Server Connection 방법
pika를 이용해 RabbitMQ Server Connection 방법을 정리 한다. ConnectionParameters ConnectionParameter를 이용하여 접속할 Server 정보를 입력하는 방법 장점 : host, port 및 RabbitMQ의 virtual_host 설정도 가능 import pika # Set the connection parameters to connect to rabbit-server1 on port 5672 # on the / virtual host using the username "guest" and password "guest" credentials = pika.PlainCredentials('guest', 'guest') parameters = pika.Co..
2022.02.20 -
[RabbitMQ #5] Queue & Message 보존 설정 및 Fair Dispatch
Delivery Acknowledgement Timeout RabbitMQ Server가 Publisher가 보낸 데이터를 가지고 있고, 해당 데이터를 수신한 Consumer가 하나도 없다고 가정 한다. 이런 경우, 새로운 Consumer가 start_consuming()을 수행 하면, 새로운 Consumer는 Queue에 Binding 된 데이터를 모두 수신 할 수 있다. 만약 Consumer가 수행 되지 않아 RabbitMQ Server가 데이터를 계속 가지고 있다면, RabbitMQ Server는 Delivery Acknowledgement Timeout(Default : 30초) 시간 동안 보관 하고 이후 데이터를 ACK 받은 것으로 처리 한다. Delivery Acknowledgement Tim..
2022.02.19 -
[RabbitMQ #4] 경쟁 소비자 패턴(Competing Consumer Pattern)
경쟁 소비자 패턴(Competing Consumer Pattern) 여러 소비자가 동시에 메시지 큐에 있는 메시지를 처리 할 수 있도록 하는 설계 패턴 사용량이 많은 시스템에서 요청으로 인한 병목 현상을 피하기 위해 소비자 사이에서 부하를 분산 함 다수의 메시지를 분산 처리 하기 위한 환경에 적합 수신을 위한 서비스가 여러 메시지를 동시에 처리 할 수 있도록 다수의 경쟁 소비자를 단일 채널에 생성 송신자가 메시지를 메시지 큐에 전달하면, 소비자 중에서 하나의 수신자가 메시지 수신 Consumer( consumer.py ) connection = pika.BlockingConnection(pika.URLParameters('amqp://admin:admin@192.168.0.3:5672/')) channe..
2022.02.18 -
[RabbitMQ #3] RabbitMQ Server API 이용 Connection List 확인 하기
RabbitMQ Server API 이용, 연결된 Connection List 확인 하기 import requests session = requests.Session() session.auth = ("admin", "admin") json_data = session.get("http://192.168.0.40:15672/api/connections").json() for data in json_data: print(data["name"]) $ python main.py 192.168.0.210:56129 -> 192.168.48.3:5672 수신된 JSON 데이터 원문 - RabbitMQ Server에 연결된 Connection은 1개이며, { "auth_mechanism":"PLAIN", "channe..
2022.02.17 -
[RabbitMQ #1] Rabbit MQ 설치
Rabbit MQ란? RabbitMQ는 얼랭(Erlang)으로 AMQP를 구현한 메시지 브로커 시스템이다. 얼랭(Erlang) 얼랭(Erlang)은 범용 병령 프로그래밍 언어이다. 원래는 에릭슨(Ericsson)사에서 스위칭 소프트웨어에서 사용하기 위해 개발 되었지만, 1998년 오픈 소스로 공개 되었다. AMQP(Advanced Message Queuing Protocol) https://kaizen8501.tistory.com/217 참고 Ubuntu에 설치 저장소 추가 $ sudo apt list --installed rabbitmq-server Rabbit MQ 설치 $ sudo apt-get install erlang $ sudo apt-get install rabbitmq-server $ ra..
2022.02.15