본문 바로가기

rabbitmq

(2)
[RabbitMQ] Python에서 Pika를 이용한 RabbitMQ 사용 (Topic Queue) RabbitMQ는 AMQP(Advanced Message Queuing Protocol)을 구현되었습니다. (https://www.amqp.org/) AMQP는 queue, exchange, binding 이라는 세 개의 개념으로 구성됩니다. - queue는 메시지를 보관하고 소비자가 메시지를 선택하기를 기다립니다. - exchange는 게시자가 새 메시지를 추가하기 위한 진입점 - binding은 메시지가 exchange로 queue로 라우팅되는 방법을 정의합니다. RabbitMQ 실행 docker를 이용해서 Rabbitmq를 실행해보자(rabbitmq 3.8) 1 docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.8-..
[Flask] 비동기 호출(태스크 큐, 토픽 큐, RabbitMQ) 비동기 호출 마이크로서비스 아키텍처에서 비동기 호출은 하나의 애플리케이션 안에서 처리했던 작업들이 여러 개의 마이크로서비스로 분리되면서 중심 역할을 담당한다. 비동기 호출은 마이크로서비스 앱 안의 분리된 스레드나 프로세스처럼 단순하게 동작할 수 있다. 즉, 동시에 일어나는 HTTP 요청/응답을 간섭하지 않고 작업을 처리한다. 하지만 동일한 파이썬 프로세스에서 직접 모든 것을 처리하는 것은 좋지 않다. 프로세스가 종료되거나 재시작되면 어떻게 해야하며, 서비스를 확장하는 경우에는 문제가 생길 수 있다. 이 방식보다는 다른 프로그램에 메시지를 보내서 처리하는 것이 더욱 안정적이다. 이를 통해 마이크로서비스가 본연의 목적, 즉 클라이언트에 응답을 보내는 것에 집중하게 할 수 있다,. 태스크 큐 Celery 워커..