2013-10-08 7 views
7

Sono un principiante che cerca di implementare lo scambio di intestazioni nel client java. sono consapevole che questo è l'argomento vincolante "x-match". Quando l'argomento "x-match" è impostato su "any", è sufficiente un solo valore di intestazione corrispondente. In alternativa, impostare "x-match" su "all" richiede che tutti i valori debbano corrispondere. ma qualcuno può fornirmi un codice scheletro per una migliore comprensione.Come si implementa lo scambio di intestazioni in RabbitMQ utilizzando Java?

risposta

20

per usare un header scambio non vi resta che dichiarare la vostra scambio come tipo intestazioni:

channel.exchangeDeclare("myExchange", "headers", true); 

allora avete bisogno di dichiarare una coda che sarà la destinazione finale dei messaggi prima di un consumatore li consuma:

Ora è necessario associare lo scambio alla coda dichiarando un'associazione. In questa dichiarazione è dove si impostano le intestazioni che si desidera per il routing dei messaggi dalla propria centralina alla coda. Un esempio potrebbe essere:

Map<String, Object> bindingArgs = new HashMap<String, Object>(); 
bindingArgs.put("x-match", "any"); //any or all 
bindingArgs.put("headerName#1", "headerValue#1"); 
bindingArgs.put("headerName#2", "headerValue#2"); 

... 
channel.queueBind("myQueue", "myExchange", "", bindingArgs); 
... 

questo creerà il legame con HeaderName # 1 e 2 HeaderName #. Spero che aiuti!

+0

Grazie! :), è chiaro ora. – user2857129

+0

Buona spiegazione della relazione scambio/coda. Grazie! – user1828780

0

Primo scambio dichiarare con il tipo di intestazioni: -

channel.exchangeDeclare("Exchange_Header", "headers", true); 

quindi dichiarare coda: -

channel.queueDeclare("Queue", true, false, false, null); 

Ora Definire come intestazione e associarlo con coda: -

Map<String,Object> map = new HashMap<String,Object>(); 
    map.put("x-match","any"); 
    map.put("First","A"); 
    map.put("Fourth","D"); 

channel.queueBind("Queue", "Exchange_Header", ROUTING_KEY ,map); 

Selezionare questa : - http://codedestine.com/rabbitmq-headers-exchange/

Problemi correlati