2012-04-26 11 views
19

में प्रोसेसर के बीच मूल्यों पासिंग अपाचे ऊंट में, जो उन लोगों के लिए सबसे अच्छा तरीका एक और करने के लिए एक मुद्रा प्रोसेसर (और क्यों) से मूल्यों को पारित करने के लिए है:अपाचे ऊंट

  • विनिमय हेडर में भंडारण
  • मार्ग बनाने के दौरान setProperty विधि का उपयोग कर।
  • एक और तरीका है ..

उत्तर

22

गुण और हेडर काफी समान हैं। हेडर, हालांकि, जेएमएस जैसे कुछ घटकों पर प्रोटोकॉल विशिष्ट हेडर से/में परिवर्तित हो जाते हैं। तो,

  • एक मार्ग के अंदर मेटा डेटा: के लिए/बाहर से गुण
  • मेटा डेटा: हेडर
16

Exchange प्रोसेसर के बीच पारित हो जाता है। इसमें गुण, संदेश और वैकल्पिक आउट संदेश शामिल हैं। इनमें से प्रत्येक वस्तु डेटा संग्रहित करने में सक्षम है, लेकिन सामान्य रूप में:

  • सामान्य
  • (कम बार प्रयोग किया जाता) संदेश के बारे में मेटा डेटा के लिए एक्सचेंज गुण का उपयोग endpoint प्रॉपर्टी कॉन्फ़िगर करने में संदेश हेडर का उपयोग करें या (अक्सर इस्तेमाल किया) संदेश के मुख्य भाग के बारे में मेटा डेटा
  • संदेश (सबसे अक्सर इस्तेमाल किया)
  • एक बाहर संदेश बनाने के पेलोड के लिए में संदेश के मुख्य भाग का उपयोग केवल आवश्यक अगर बनाम बाहर गए संदेशों के दौरान में अलग बनाए रखने के लिए के लिए प्रसंस्करण (डिफ़ॉल्ट रूप से केवल IN उपयोग किया जाता है)

उसने कहा, यह वास्तव में आपके प्रोसेसर का पालन करने वाले घटक पर निर्भर करता है। अधिकांश में कुछ शीर्षलेख और/या शरीर के मान होते हैं जिन्हें एंडपॉइंट आदि का उपयोग करने की आवश्यकता होती है। इन विवरणों के लिए विशिष्ट component page देखें।

इसके अलावा, एक्सचेंज/संदेश इन पृष्ठों पर अधिक विस्तार से समझाया जाता है:

http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html

http://fusesource.com/docs/router/2.8/prog_guide/MsgFormats-Exchanges.html

39

एक भेद बेन और पैटर से उल्लेख नहीं किया है कि गुण सुरक्षित रूप से पूरी अवधि के लिए जमा हो जाती है है ऊंट में संदेश की प्रसंस्करण की। इसके विपरीत, हेडर संदेश प्रोटोकॉल का हिस्सा हैं, और रूटिंग के दौरान प्रचारित नहीं किए जा सकते हैं। उदाहरण के लिए, JMS सीमाओं क्या आप हेडर आदि के रूप में स्टोर कर सकते हैं है

आप कार्रवाई पुस्तक में ऊंट का नि: शुल्क अध्याय 1 पढ़ने के लिए के रूप में यह एक्सचेंज, संदेश, आदि के साथ ऊंट अवधारणाओं को शामिल किया चाहते हो सकता है

+10

+ 1 यह एक महत्वपूर्ण भेद है। आम तौर पर, यदि आप यह सुनिश्चित करना चाहते हैं कि जिस डेटा को आप सेट कर रहे हैं, वह समाप्त हो जाएगा जहां आप इसे चाहते हैं, तो मैं दृढ़ता से अनुशंसा करता हूं कि आप गुणों का उपयोग करें। मुझे अतीत में जला दिया गया है, जहां किसी ने एक रूट के बीच में एक जेएमएस कदम जोड़ा, जिसके साथ मैं हेडर में संग्रहीत जानकारी पास कर रहा था, और जानकारी सिर्फ बंद हो गई। –

+0

जेएमएस के मामले में, गुणों का प्रचार नहीं किया जाता है और शीर्षलेख दिन के लिए अनुशंसित तरीका हैं। क्या यह सही नहीं है या मुझे कुछ याद आ रहा है? –

+0

शायद इसकी शर्तें। जेएमएस बॉडी + गुण जेएमएस शब्द हैं।ऊंट में उसके शरीर + संदेश पर शीर्षलेख, और एक्सचेंज पर गुण। ऊंट नक्शा शरीर -> शरीर, और शीर्षलेख -> जेएमएस गुण। –

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