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、