rabbitmq之routing

routingkey 和 bindingkey

routingkey:producer 發佈message 通過basicPublish方法,其中有一個exchange 參數用來指定發送到哪個exchange,一個參數routingkey,用來指定exchange接收到message後,發送給哪個binding在此exchange的queues (queue binding到exchange有個bindingkey 是否與routingkey match),

bindingkey:用來綁定exchange與queues,其中有個一參數bindingkey,用來判斷是否bindingkey與routingkey match,match的話,發送到對應的queue。

通過routingkey是否與bindingkey match,來filter message,dispatch message給不同的queues,從而對應不用consumer,也可以用來discard 不match的message。

channel.queueBind(queueName, EXCHANGE_NAME, "black");
black字符就是bindingkey,也叫routingkey

鑑於fanout type的exchange 會忽略routingkey,一般routingkey與direct type exchange一起用。

注意:一個queue,可以通過多個不同的bindingkeys綁定到同一個exchange,這樣,發佈message的routingkey,滿足匹配任一bindingkeys,都會route到此queue。

String queueName = channel.queueDeclare().getQueue();

for(String severity : argv){
  channel.queueBind(queueName, EXCHANGE_NAME, severity);
}

詳情及example參照:http://www.rabbitmq.com/tutorials/tutorial-four-java.html、


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章