RabbitMQ

RabbitMQ

리콜 2023. 6. 13. 01:34

RabbitMQ란 메세지 브로커로서 클라이언트로부터 오는 많은 메시지를 분류하고 처리하기 위해 사용한다.

 

RabbitMQ의 기본 동작은

 메시지를 보내면 해당 서버(Producer)가 받아서 RabbitMQ의 Exchange로 보낸다. 그러면 Exchange는 받은 메시지의 키(KEY) 값을 보고 어느 큐로 보내야 하는지 보고 해당 큐로 보낸다(바인딩). 그리고 큐로 보내지면 해당 큐의 메시지를 기다리고 있던 서버가 받아서 클라이언트에게 쏴주게 된다.

 

이때 Exchange는 4가지 정도가 있는데 그 중 이번에 채팅을 만들면서 Topic Exchange를 사용하여 topic에 대하여 설명해 본다.

 

  토픽은  쉽게 말해 메세지를 키를 통하여 여러 큐로 브로드캐스팅 하는 것이다. hello라는 메시지가 오면서 binding key로 abc.def가 왔을때
큐1번은 바인딩키가 abc.def
큐 2번은 바인딩키가 abc.*

큐 3번은 바인딩 키가 bcd.ddd

라면 1번과 2번에 바인딩되어 메시지가 두군데 모두 전송된다.

 

2번이 바인딩 되는 이유는 *는 하나의  단어를 뜻하여 앞의 abc.만 맞으면 됩니다.

*대신 #이 오면 뒤에 여러단어가 오거나 아무단어가 오지 않아도 된다는 뜻입니다.

 

토픽을 사용하면 채팅방을 만들거나 여러가지 편리하게 사용할 수 있습니다. 

반응형