2013-10-08 6 views
7

मैं जावा क्लाइंट में हेडर एक्सचेंज को लागू करने की कोशिश कर रहा हूं। मुझे पता है कि यह "एक्स-मैच" बाइंडिंग तर्क के लिए है। जब "एक्स-मैच" तर्क "किसी भी" पर सेट होता है, तो केवल एक मिलान करने वाला शीर्षलेख मान पर्याप्त होता है। वैकल्पिक रूप से, "x-match" को "सभी" में सेट करना जरूरी है कि सभी मानों का मिलान होना चाहिए। लेकिन क्या कोई मुझे बेहतर समझने के लिए एक कंकाल कोड प्रदान कर सकता है।जावा का उपयोग करके खरगोश एमक्यू में हेडर एक्सचेंज को मैं कैसे कार्यान्वित करूं?

उत्तर

20

एक हैडर का उपयोग करने के लिए विदेशी मुद्रा आप बस के रूप में हेडर लिखें, अपना विनिमय घोषित करने के लिए की जरूरत है:

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

तो फिर तुम एक कतार से पहले एक उपभोक्ता उन्हें खपत है कि संदेशों के अंतिम गंतव्य होगा की घोषणा करने की जरूरत है:

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

अब हमें बाध्यकारी घोषित करने के लिए एक्सचेंज को बाध्य करने की आवश्यकता है। इस घोषणा में वह जगह है जहां आप सेट करते हैं कि आप अपने कतार में संदेशों को रूट करने के लिए कौन से हेडर चाहते हैं। एक उदाहरण हो सकता है:

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

यह हेडरनाम # 1 और हेडरनाम # 2 का उपयोग करके बाध्यकारी बना देगा। आशा है कि ये आपकी मदद करेगा!

+0

thanx! :), अब यह स्पष्ट है। – user2857129

+0

विनिमय/कतार संबंधों की अच्छी व्याख्या। धन्यवाद! – user1828780

0

हेडर प्रकार के साथ सबसे पहले घोषित विनिमय: -

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

फिर कतार घोषित: -

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

अब हैडर को परिभाषित करने और कतार के साथ यह बाँध: -

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

चेक इस : - http://codedestine.com/rabbitmq-headers-exchange/

संबंधित मुद्दे