본문 바로가기
728x90

rabbitmq tutorial3

[RMQ] Python으로 배우는 RabbitMQ 튜토리얼(6) - RPC 1. RPC란? RPC는 Remote Procedure Call의 약자로 간단하게 Client는 Request를 Server에 전달하고 Server는 해당 Request를 처리하여 알맞은 결과 값을 다시 Client에 Response해주는 방법을 뜻한다. 즉, RPC는 원격지에 메세지를 전달해서 결과를 다시 전달 받는 것을 뜻한다. 1-1. Message Properties DeliveryMode : 메세지 속성이 persistent인지 transient인지 표시(휘발성 or 비휘발성) ContentType : 내용물의 mime-type ReplyTo : 일반적으로 callback queue의 이름을 지정하는데 사용 CorrelationID: 요청을 구분할 수 잇는 유일한 값 1-2. 아래는 RPC의 데.. 2022. 1. 20.
[RMQ] Python으로 배우는 RabbitMQ 튜토리얼(5) - Topic 1. Topic이란 RabbitMQ에서 토픽이란 routing_key 전체가 일치하거나 일부 패턴과 일치하는 모든 Queue에 메세지를 전달하는 역할을 한다. 위와 같이 어떤 토픽이냐에 따라 해당 토픽에 관심이 있는 Consumer에게 메세지를 선별적으로 보내게 된다. 이때 토픽에서 와일드 카드 기능을 제공하게 되는데, 1. *(star) : 한 단어만을 지정 가능 2. #(hash) : 한 단어 이상을 지정 가능 예를 들어, *.orange.* 의 경우 a.orange.b 형식으로 매칭되고, a.b.orange의 경우에는 매칭되지 않는다. 또한 lazy.#의 경우, lazy.aa.bb 혹은 lazy.cc.dd 혹은 lazy.abcd.efghi 모두와 매칭 된다. 토픽의 장점은 임의의 라우팅 키를 가질 .. 2022. 1. 20.
[RMQ] Python으로 배우는 RabbitMQ 튜토리얼(4) - Routing Routing의 경우 Pub/Sub 구조와 함께 사용하는 기능으로, 기존 튜토리얼(3)에서 Pub/Sub의 경우에는 단순히 메세지를 모든 Subscriber에게 전송했다면, Routing 기능을 통해 특정 Subscriber에게 특정 메세지를 보내는 역할을 한다. 예를 들어, 앞선 예제의 로깅 시스템에서 Disk Logging 프로그램은 Disk의 용량 절약을 목적으로 Critical한 에러 메세지만 수신하여 파일로 떨구고 싶은 경우에 Routing 기능을 사용할 수 있다. 1. Binding 이때 사용하는 옵션이 routing_key 옵션으로 바인딩 키를 설정한다. channel.queue_bind(exchange=exchange_name, queue=queue_name, routing_key='bla.. 2022. 1. 18.
728x90