2011-05-19 12 views
27

ऐसा लगता है कि दोनों एक ही उद्देश्य की सेवा करते हैं। क्या कोई अंतर है जो कुछ स्थितियों में उपयोगी बनाता है, न कि दूसरे?अपाचे कैमल: प्रोसेसर और बीन्स एक ही उद्देश्य की सेवा करते हैं?

उत्तर

22

प्रैक्टिस में, वे बहुत समान हैं, लेकिन एक प्रोसेसर बीन से अधिक सीमित है। मैं आमतौर पर सरल उपयोग मामलों के लिए एक प्रोसेसर का उपयोग करता हूं जो केवल एक्सचेंज के साथ बातचीत करता है। इसके अलावा, inline processors एक अलग वर्ग बनाने के बिना बातचीत करने का एक शानदार तरीका है।

बीन्स अधिक लचीलापन प्रदान करते हैं और एक वास्तविक POJO दृष्टिकोण का भी समर्थन करते हैं। यह आपको मौजूदा एपीआई के साथ अधिक आसानी से एकीकृत करने की अनुमति देता है (केवल इनपुट/आउटपुट को मिलान करने के लिए कनवर्ट करने की आवश्यकता है)।

बीन्स भी ऊंट मार्ग/EIP एकीकरण, सहित के संबंध में महान सुविधाओं/लचीलापन प्रदान करते हैं ...

  • bindings है कि आप जल्दी से एक सेम की विशेषताओं को Exchange से डेटा बाध्य करने के लिए अनुमति देते हैं की समृद्ध सेट विधि, आदि

  • POJO consuming/producing आप एक पुन: प्रयोज्य ढंग से अंतिम बिंदुओं के साथ बातचीत करने की अनुमति

  • (पीओजेओ ईआईपी कार्यान्वयन के लिए ... फिल्टर, आदि)

9

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

मैं निम्नलिखित मामलों में दर्द महसूस किया गया था:

  • बीन एक से अधिक पैरामीटर के साथ तरीकों
  • विनिमय पैरामीटर से बाहर डेटा प्राप्त करने की कोशिश कर रहा/संदेश हेडर

मुझे पता है कि Camel 2.8 annotations in your bean की अनुमति देकर इन मामलों के कुछ दर्द निकालता है जो आपके बीन के तरीकों को कॉल करने के तरीके पर कैमल को मार्गदर्शन करता है। मैं इस मार्ग पर नहीं जाना चाहता था - कैमल एनोटेशन को एक बीन में डालने में गलत लगा, जिस पर ध्यान नहीं दिया जाना चाहिए कि इसे ऊंट द्वारा बुलाया जा रहा है।

अंत में हमने एक एनोटेशन-फ्री, क्लाइंट-अज्ञेय बीन और एक बहुत ही पतला प्रोसेसर बनाया जो इसे ऊंट से जो कुछ भी चाहिए उसे खींचता है और उसे उस बीन में भेज देता है।

बस मेरे 2 सेंट - सेम मार्ग वास्तव में एक बुरा एक नहीं है - यह काम बस के रूप में अच्छी तरह से (2.8 में esp) करूँगा

संपादित

कई सुधार किए गए हैं संदेशों को संसाधित करने के लिए पीओजेओ के ऊंट के उपयोग के लिए यह लिखा गया था - यह उत्तर अब लागू नहीं हो सकता है।