2013-10-08 28 views
7

Jestem nowicjuszem próbującym implementować wymianę nagłówków w kliencie Java. im świadomy, że to jest dla tego argumentu wiążącego "x-match". Gdy argument "x-match" jest ustawiony na "any", wystarczy jedna dopasowana wartość nagłówka. Alternatywnie, ustawienie "x-match" na "wszystkie" powoduje, że wszystkie wartości muszą być zgodne. , ale czy ktoś może mi podać kod szkieletu dla lepszego zrozumienia.Jak zaimplementować wymianę nagłówków w RabbitMQ za pomocą Java?

Odpowiedz

20

za korzystanie z nagłówków wymieniać wystarczy zadeklarować wymianę jako typ nagłówki:

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

Następnie trzeba zadeklarować kolejkę, która będzie ostatecznym miejscem przeznaczenia wiadomości zanim konsument spożywa je:

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

Teraz musimy powiązać wymianę z kolejką deklarującą wiązanie. W tej deklaracji określa się, które nagłówki mają być potrzebne do przekazywania wiadomości z giełdy do kolejki. Przykładem może być:

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); 
... 

Spowoduje to utworzenie powiązania za pomocą opcji headerName # 1 i headerName # 2. Mam nadzieję, że to pomoże!

+0

thanx! :), teraz jest jasne. – user2857129

+0

Dobre wyjaśnienie relacji wymiany/kolejki. Dzięki! – user1828780

0

Pierwsza wymiana deklaruje z nagłówkami typu: -

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

Następnie zadeklarować kolejki: -

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

teraz zdefiniować nagłówek i powiązać go z kolejki: -

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); 

Sprawdź to : - http://codedestine.com/rabbitmq-headers-exchange/

Powiązane problemy