2013-10-08 20 views
7

Java istemcisinde Headers exchange'i uygulamaya çalışan bir yeni kullanıcıyım. Bu "x-match" bağlayıcı argümanının ne için olduğunu farketmiştir. "X-match" argümanı "any" olarak ayarlandığında, sadece bir eşleşen başlık değeri yeterlidir. Alternatif olarak, "x-match" öğesini "all" olarak ayarlamak, tüm değerlerin eşleşmesi gerektiğini zorunlu kılar. ama herkes daha iyi anlamak için bana bir iskelet kodu sağlayabilir.Java kullanarak RabbitMQ'da Headers Exchange'i nasıl uygularım?

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

Sonra bir tüketici bunları tüketir önce mesajların son hedef olacak bir kuyruk ilan etmek gerekir: a başlıklarını kullanarak için

cevap

20

başlıkları yazarken sadece kendi alışverişini beyan etmek gerek alışverişinde

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

Şimdi, bir bağın bildirildiğini kuyruğa bağlamaya ihtiyacımız var. Bu beyanda, exchange'inizden iletilerinizi sıranıza yönlendirmek için hangi üstbilgileri istediğinizi ayarlamanız gerekir. Bir örnek olabilir:

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

Bu bağlayıcı kullanılarak HeaderName 1. ve 2. HeaderName # yaratacaktır. Umarım bu yardımcı olur! başlıkları tip

+0

thanx! :), şimdi açık. – user2857129

+0

Değişim/kuyruk ilişkisinin iyi bir açıklaması. Teşekkürler! – user1828780

0

İlk beyan değişimi: -

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

Sonra Sırası ilan: -

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

Şimdi başlığını tanımlamak ve kuyrukta ile bağlamak: -

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

Kontrol bu : - http://codedestine.com/rabbitmq-headers-exchange/

İlgili konular