2009-10-09 11 views
5

हम वर्तमान में जेएमएस के माध्यम से आईबीएम एमक्यू का उपयोग कर रहे हैं, लेकिन लगता है कि यह अधिक संदेशों के माध्यम से इसे संभाल सकता है - अजीब बात यह है कि समस्या अड़चन लगती है।वेबस्पेयर एमक्यू कम लेटेंसी मैसेजिंग - क्या इसमें एक जेएमएस (या जेएमएस जैसे) एपीआई है?

संदेश कीमतें हैं और इस प्रकार गारंटी की आवश्यकता नहीं है, बस जल्दी से भेजने की आवश्यकता है।

आईबीएम के पास Low Latency product है, तो मुझे आश्चर्य है कि यह शायद बेहतर समाधान है - लेकिन ऐसा लगता है कि यह एक जेएमएस एपीआई नहीं है, या कम से कम आसानी से दिखाई नहीं दे रहा है।

किसी को भी पता है कि अगर वहाँ कम प्रतीक्षा अवधि उत्पाद, या "अद्वितीय" एपीआई यह है है अगर JMS की तरह में एक JMS एपीआई ...

वैकल्पिक रूप से, MQ ट्यूनिंग के लिए संकेत भी सराहना की जाएगी। .. :)

उत्तर

5

निश्चित रूप से कम विलंबता संदेश उत्पाद आपकी समस्या के लिए बेहतर होगा, मैं एक परियोजना पर काम कर रहा हूं जहां हम 29West से एलबीएम नामक कम विलंबता संदेश उत्पाद का उपयोग करके बहुत कुछ करते हैं। इसमें कोई जेएमएस एपीआई नहीं है और मुझे संदेह है कि निम्न-विलंबता स्थान में अधिकांश उत्पाद नहीं होंगे। वहां बड़ी संख्या में विशेषताएं हैं जो इन प्रकार के उत्पादों (जैसे दृढ़ता, चयनकर्ता, आदि) के संयोजन में समझ में नहीं आती हैं। हमने पाया कि मैसेजिंग उत्पाद के शीर्ष पर अपनी सरल एपीआई लिखना काफी आसान है और बाद में उत्पादों को बदलने के लिए लचीलापन का उपयोग करता है और हमें जेएमएस एपीआई के कुछ थोक और क्रियापदता से मुक्त करता है।

विचार करने का एक और विकल्प JGroups होगा।

2 9वेस्ट ने अपनी संदेश उत्पाद लाइन में जेएमएस समर्थन जोड़ा है।

+0

धन्यवाद - हमारे पास आमतौर पर अत्यधिक मात्रा या तंग विलंबता की आवश्यकता नहीं होती है और हमारे पिछले समाधान, फियोरानो ने ठीक काम किया है। दुर्भाग्यवश कंपनी के मानक आईबीएम एमक्यू को निर्देशित कर रहे हैं :( –

1

SupportPacs page पर "एमक्यू ट्यूनिंग के लिए पॉइंटर्स" के संबंध में, विशिष्ट अनुशंसाओं के साथ प्रति मंच प्रदर्शन प्रदर्शन हैं। MP * नामक SupportPacs पर नीचे स्क्रॉल करें और उपयुक्त संस्करण और प्लेटफ़ॉर्म देखें। बड़े और छोटे संदेशों के साथ विभिन्न प्रकार के परिदृश्यों का परीक्षण किया जाता है, लगातार और गैर-लगातार, गेटटर और पटर आदि की संख्या पर भिन्नताएं

1

एलएलएम उत्पाद के लिए एक पूर्व डेवलपर के रूप में मैं कह सकता हूं कि यह कम से कम करता है या कम से कम किया जाता है । संस्करण 2.6

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

एलएलएम का मूल उद्देश्य मूल रूप से है; इसमें विश्वसनीय वितरण है: यदि यह आपको वितरित करने में विफल रहता है तो आपको पता चलेगा कि यह वितरित करने में विफल रहा है। इन संदेशों की पुनर्प्राप्ति केवल सीमित है कि आप डिस्क से कैश या याद रखने के इच्छुक हैं और इस प्रकार आप अपनी प्रक्रिया को संभालने के दौरान वसूली के इंतजार को कितना समय तक सहन करने के इच्छुक हैं .. आपके मामले में, आपको पुनर्प्राप्त करने की परवाह नहीं है। चाहे एलएलएम आपके लिए सही है या नहीं, मैं अनुमान लगा सकता हूं। मैं क्या कह सकता हूं कि पिछले डेवलपर के रूप में और बाद में एक ग्राहक के रूप में मेरे दृष्टिकोण से, मुझे दोनों के बीच कोई समानता नहीं मिली, और इस तरह के आवेदन के लिए एलएलएम के प्रदर्शन ने पूरी तरह से पानी से एमक्यू को उड़ा दिया। मैंने कभी भी जावा/जेएमएस पक्ष का बहुत उपयोग नहीं किया और सी/सी ++ पर ध्यान केंद्रित किया गया ताकि इसे नमक के अनाज के साथ ले जाएं। मुझे बस पता था कि उसने ऐसा किया और Google में कहां देखना है।

http://www-01.ibm.com/support/knowledgecenter/SSQPD3_2.6.0/com.ibm.wllm.doc/api/javadoc/messaging/com/ibm/llm/jms/package-summary.html

पैकेज com.ibm.llm।jms विवरण

प्रदाता एलएलएम JMS ग्राहक के लिए विशिष्ट सार्वजनिक वर्गों को लागू करें।

JMS में इस्तेमाल इंटरफेस का सबसे आम JMS इंटरफेस द्वारा परिभाषित कर रहे हैं। हालांकि, जेएमएस विनिर्देश में कक्षाएं और इंटरफ़ेस शामिल नहीं हैं जो JMS क्लाइंट को कॉन्फ़िगर करने के लिए आवश्यक हैं। JMS कक्षाएं और तरीकों के बारे में जानकारी के लिए

देखें JMS API दस्तावेज़।

परिचय

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

एलएलएम जेएमएस क्लाइंट अधिकांश एलएलएम क्लाइंट फ़ंक्शन का समर्थन करता है, लेकिन किसी स्तर के भीतर चलने के सर्वर फ़ंक्शन का समर्थन नहीं करता है, या लोड बैलेंस ट्रांसमीटर होता है।

एलएलएम उपभोक्ता मैसेजिंग के लिए सीधी निर्माता कर पर आधारित है। JMS सामान्य रूप से एक संदेश सर्वर और JMS समारोह जो संदेश सर्वर के लिए आवश्यक का उपयोग कर लागू किया है जब एलएलएम JMS क्लाइंट का उपयोग उपलब्ध नहीं है। इसमें सभी पॉइंट-टू-पॉइंट मैसेजिंग (कतार) के साथ-साथ पुनर्प्राप्ति फ़ंक्शन भी शामिल है। एलएलएम जेएमएस क्लाइंट को जेएसई पर्यावरण में चलाने के लिए डिज़ाइन किया गया है और यह एप्लिकेशन सर्वर एक्सटेंशन या एक्सए लेन-देन का समर्थन नहीं करता है।

एलएलएम JMS ग्राहक कैसे लागू करता है JMS

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

एलएलएम जेएमएस क्लाइंट मॉडल (कतार) को इंगित करने के लिए बिंदु को लागू नहीं करता है, लेकिन सभी जेएमएस ऑब्जेक्ट्स बनाए जा सकते हैं।

एलएलएम JMS ग्राहक की एक JVM की आवश्यकता कम से कम जावा 5.

एलएलएम JMS ग्राहक सभी छह संदेश प्रकार वस्तुओं (संदेश, BytesMessage, MapMessage, ObjectMessage, StreamMessage, और TextMessage) को परिभाषित करता है। जेएमएस से जेएमएस तक संदेश भेजते समय, जेएमएस हेडर संदेश के प्रकार को इंगित करता है। यदि जेएमएस हेडर गुम है (जो गैर-जेएमएस निर्माता से संदेश भेजते समय आम है) एलएलएम जेएमएस क्लाइंट सामग्री से संदेश के प्रकार को कम करने का प्रयास करता है। आम तौर पर संदेश बाइट्स मैसेज के रूप में दिखाई देगा, लेकिन यदि संदेश यूटीएफ -8 बीओएम से शुरू होता है या एक्सएमएल प्रतीत होता है तो इसे एक टेक्स्ट मैसेज के रूप में व्याख्या किया जाएगा। टेक्स्ट मैसेज को यूटीएफ -8 में कोडित माना जाता है ......

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