-
[RabbitMQ] 5. Topics, Topic(Pattern) ExchangeRabbitMQ 2019. 1. 7. 19:39
이번에는 특정 패턴을 기준으로 메시지를 선별하여 보낼 수 있는 exchage를 알아본다.
direct exchange는 한가지 rule(bindingKey)만을 기준으로 메시지 선별이 가능했다.
topic exchange 이녀석은 메시지 선별을 위해 여러 패턴을 설정할 수 있다. 이녀석은 무조건 routingKey를 점으로 구분된 단어 리스트로 넣어야한다.
("stock.usd.nyse", "nyse.vmw", "quick.orange.rabbit")
- Topic Exchange
특정 routingKey와 함께 전송된 메시지는 일치하는 바인딩 키로 연결된 모든 큐로 전달한다.(*는 1글자, #은 0개 이상)
라우팅 키를 다음과 같이 정의할 때 "<speed>.<colour>.<species>" 각 큐에 걸려있는 바인딩 룰의 의미는 다음과 같다.
Q1 : 오랜지색인 모든 동물
Q2 : 모든 토끼 또는 늦은 모든 동물
이 exchange의 기능은 매우 강력해서 다른 타입의 exchange를 대체할 수 있는데 #으로 바인딩하면 fanout exchange 처럼 동작하고, *|#을 사용하지 않으면 direct exchage 처럼 동작한다.
'RabbitMQ' 카테고리의 다른 글
[RabbitMQ] 4. Routing, Direct Exchange (0) 2019.01.06 [RabbitMQ] 3. Publish/Subscribe, Fanout(Broadcasting) Exchange (0) 2019.01.05 [RabbitMQ] 2. Work Queues, Qos (0) 2019.01.01 [RabbitMQ] 1. Hello World, basicPublish/basicConsume (0) 2018.12.30