2008-12-22 14 views
6

जावा वेब एप्लिकेशन में मेरे पास आवर्ती संदेश लोड प्रकार ए (उदाहरण के लिए, 20,000 हर घंटे) है। तब मेरे पास दूसरा प्रकार का संदेश (प्रकार बी) है जो कभी-कभी दिखाता है लेकिन टाइप ए (कहें, 3,000) से अधिक प्राथमिकता है। मैं इन संदेशों को ओपन सोर्स सॉफ्टवेयर का उपयोग कर एक या एक से अधिक मशीनों पर संसाधित करने में सक्षम होना चाहता हूं।प्राथमिकताओं के साथ संदेश प्रसंस्करण

ऐसा लगता है कि मैं जेएमएस के साथ ऐसा कर सकता हूं अगर मेरे पास एक जेएमएस सर्वर था जो प्राथमिकताओं के आधार पर अपनी कतार से संदेश भेजेगा (उदाहरण के लिए, टाइप बी के तीन संदेश और फिर एक प्रकार का ए भेजें, भले ही सभी संदेश प्रकार ए संदेश कतार के शीर्ष पर हैं)।

क्या आप एक जेएमएस सर्वर जानते हैं जो ऐसा कर सकता है - या क्या आप इसे लागू करने के लिए एक और तरीका जानते हैं?

उत्तर

2

संदेश प्रदाता (QueueSender, आदि) पर "भेजें (..)" पर कॉल करते समय संदेश प्राथमिकता सेट करें। या, आप 0-9 (9 उच्चतम) से संदेश प्रोड्यूसर पर डिफ़ॉल्ट प्राथमिकता सेट कर सकते हैं। संदेश पर प्राथमिकता निर्धारित करना काम नहीं करेगा। यह निर्माता द्वारा ओवरराइड किया गया है।

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

JMS युक्ति कहता है: "JMS does not require that a provider strictly implement priority ordering of messages; however, it should do its best to deliver expedited messages ahead of normal messages."

6

जेएमएस मानक संदेश प्राथमिकताओं का समर्थन करता है डिफ़ॉल्ट 4 है, आप दूसरों को निर्दिष्ट कर सकते हैं)। मुझे लगता है कि आपको इसे संदेश निर्माता और संदेश में सेट करने की आवश्यकता है (दोनों पर विधियां हैं)।

मुझे लगता है कि ActiveMQ इसका समर्थन करता है।

हालांकि, कई जेएमएस ब्रोकर को डिफ़ॉल्ट रूप से प्राथमिकता संभालना अक्षम है। ब्रोकर कॉन्फ़िगरेशन में कहीं भी "supportJMSPriority" जैसे कुछ ध्वज बदलने की आवश्यकता हो सकती है।

इसके अलावा, अपाचे कैमल आपको अपना संदेश शोधकर्ता लिखने देता है ताकि आप किसी भी प्रकार की प्राथमिकता को लागू कर सकें जो आप चाहें।

0

स्पष्ट रूप से अन्य संदेश प्रकार पर कार्रवाई करने के लिए एक और एमडीबी का उपयोग कर क्यों विचार नहीं। उपरोक्त प्राथमिकता विवरण अभी भी लागू होते हैं, और अधिक आप प्रत्येक संदेश प्रकार के लिए समवर्ती प्रसंस्करण पर अधिक नियंत्रण रखेंगे।

ज्यादातर स्थितियों में मैं प्रति संदेश प्रकार 1 एमडीबी या संदेश रिसीवर पसंद करता हूं। इस तरह अगर एक सौदे वापस रोल आपको तुरंत पता चल रहे संदेश की समस्या कार्ल

0

वजह से जो

आप एक से अधिक विषय इस्तेमाल कर सकते हैं। प्राथमिकताओं के साथ भी, यदि आपका प्रोसेसर कम प्राथमिकता संदेश को संसाधित कर रहा है तो यह उसके काम को रोक नहीं देगा।

यदि आपके पास अलग प्रोसेसर हैं, तो उच्च प्राथमिकता संदेश जितनी जल्दी हो सके प्रसंस्करण शुरू कर सकता है, किसी अन्य संदेश को संसाधित करने की प्रतीक्षा नहीं कर रहा है।

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