मैंने इसे देखा और यह 2 प्रणालियों के बीच संदेश भेजता था।
पर क्यों? आप सिर्फ एक का उपयोग क्यों नहीं करेंगे Database
?
कुछ सुविधा होनी चाहिए जो ActiveMQ
कि Databases
नहीं है?
मैंने इसे देखा और यह 2 प्रणालियों के बीच संदेश भेजता था।
पर क्यों? आप सिर्फ एक का उपयोग क्यों नहीं करेंगे Database
?
कुछ सुविधा होनी चाहिए जो ActiveMQ
कि Databases
नहीं है?
जवाबों:
इसका उपयोग दो वितरित प्रक्रियाओं के बीच मज़बूती से संवाद करने के लिए किया जाता है।
हां, आप दो प्रक्रियाओं के बीच संवाद करने के लिए एक डेटाबेस में संदेशों को संग्रहीत कर सकते हैं, लेकिन, जैसे ही संदेश प्राप्त होता है आपको संदेश को भेजना होगा DELETE
, इसका मतलब है कि एक पंक्ति INSERT
और DELETE
प्रत्येक संदेश के लिए।
जब आप करने की कोशिश पैमाने पर है कि प्रति सेकंड संदेशों के हजारों संवाद स्थापित करने के लिए, डेटाबेस से अधिक आने की होती है ।
संदेश-उन्मुख मध्य-वेयर [एमओएम] जैसे ActiveMQ
दूसरी ओर उन उपयोग मामलों को संभालने के लिए बनाए गए हैं।
वे मानते हैं कि एक स्वस्थ प्रणाली में संदेश बहुत जल्दी नष्ट हो जाएंगे और ओवरहेड से बचने के लिए अनुकूलन कर सकते हैं ।
यह उपभोक्ता को SQL क्वेरी करके नए संदेश के लिए सर्वेक्षण करने के बजाय उपभोक्ताओं को संदेश भेज सकता है।
यह आगे सिस्टम में भेजे जा रहे नए संदेशों को संसाधित करने में शामिल विलंबता को कम करता है।
ActiveMQ
, या सामान्य रूप से सभी संदेश ओरिएंटेड मिडलवेयर (MOM) कार्यान्वयन दो अनुप्रयोगों, या एक अनुप्रयोग के अंदर दो घटकों के बीच संदेश भेजने के उद्देश्य से डिज़ाइन किए गए हैं ।
अनिवार्य रूप से, एमओएम और डेटाबेस एक सामान्य आधार साझा करते हैं जिसमें वे पढ़ने और लिखने के लिए ट्रांजेक्शनल और लगातार डेटा स्टोरेज प्रदान करते हैं।
बड़ा अंतर उपयोग पैटर्न है - जहां डेटाबेस बहुत सामान्य होते हैं और कई तालिकाओं पर जटिल खोज के लिए अनुकूलित होते हैं, एमओएम संदेशों को पढ़ने के लिए अनुकूलित होता है, एक समय में, फैशन की तरह एक एफआईएफओ [कतार] में।
JMS
, जो एक एपीआई ActiveMQ उपकरण है, जावा एंटरप्राइज अनुप्रयोगों में एक महत्वपूर्ण आधारशिला है। यह संदेशों को एक सामान्य प्रारूप और अर्थ को साझा करता है, जो विभिन्न अनुप्रयोगों के बीच एकीकरण को आसान बनाता है।
बेशक, वहाँ अधिक विस्तृत सुविधाओं है कि केवल ActiveMQ में हैं, जैसे तार प्रोटोकॉल के एक बहुत हैं OpenWire
, STOMP
और MQTT
, JMS
, EIP
एक साथ अपाचे ऊंट, "अनुरोध / उत्तर" और "प्रकाशित करें / सदस्यता लें", JMS ब्रिजिंग, समूहन की तरह संदेश पैटर्न (के साथ " दलालों का नेटवर्क "), जो स्केलिंग और वितरण आदि की अनुमति देता है,
आपको उन विषयों पर थोड़ा पढ़ना चाहिए यदि आप रुचि रखते हैं क्योंकि वे बड़े हैं।
ActiveMQ
महान अनुसूचक का समर्थन है, जिसका अर्थ है कि आप किसी विशेष समय पर वितरित होने के लिए अपना संदेश भेज सकते हैं ।
हमने इस सुविधा का उपयोग स्वास्थ्य देखभाल परिदृश्य में अपने दवा विवरण अपलोड करने वाले रोगियों को दवा अनुस्मारक भेजने के लिए किया है।
Scheduled Jobs
उन्हीं उद्देश्यों के लिए ओरेकल डेटाबेस का उपयोग किया है।
RDBMS के साथ, जब आप डेटा की एक पंक्ति को संसाधित करते हैं, तो आप आम तौर पर एक ध्वज को इंगित करते हुए अपडेट करते हैं कि पंक्ति को संसाधित किया गया है ताकि प्रसंस्करण दोहराया न जाए।
हालाँकि, संदेश कतार के साथ, आपको केवल एक संदेश को स्वीकार करना होगा और अगला उपभोक्ता अगले एक को संसाधित करेगा।
अंतर यह है कि एक्टीबीएम UPDATE
की तुलना acknowledge
में आरडीबीएमएस में स्टैटिमेंट वास्तव में धीमा ऑपरेशन है ।
मैं निम्नलिखित पर जोर देना चाहूंगा:
अस्वीकृत : सिस्टम कनेक्ट किए बिना संचार करने में सक्षम हैं। क्यू सिस्टम के बीच स्थित है, एक सिस्टम विफलता कभी भी अन्य को प्रभावित नहीं करेगी क्योंकि क्यू के माध्यम से संचार किया जाता है। जब वे उठते हैं तो सिस्टम काम करना जारी रखता है।
पुनर्प्राप्ति समर्थन : कतार में संदेश स्वयं बने रहे। यदि कतार विफल होती है, तो संदेशों को बाद में पुनर्स्थापित किया जा सकता है।
विश्वसनीय संचार : ग्राहक अनुरोधों को संसाधित करने वाली प्रणाली पर विचार करें। सामान्य मामलों में सिस्टम को प्रति मिनट 100 अनुरोध प्राप्त होते हैं। यह प्रणाली अविश्वसनीय है जब अनुरोध की संख्या औसत से परे हो जाती है। ऐसे मामले में क्यू अनुरोधों का प्रबंधन कर सकता है और यह समय-समय पर सिस्टम थ्रूपुट पर आधारित संदेशों को बिना तोड़े इसे आगे बढ़ा सकता है।
एसिंक्रोनस : क्लाइंट सर्वर संचार गैर-अवरुद्ध है। एक बार क्लाइंट ने सर्वर को रिक्वेस्ट भेज दी तो वह बिना प्रतिक्रिया के इंतजार किए अन्य ऑपरेशन कर सकता है। प्रतिक्रिया मिलने पर इसे ग्राहक कभी भी संभाल सकता है।
से विकिपीडिया
Apache ActiveMQ एक खुला स्रोत संदेश दलाल है जो जावा में एक पूर्ण जावा संदेश सेवा (JMS) क्लाइंट के साथ मिलकर लिखा गया है। यह "एंटरप्राइज फीचर्स" प्रदान करता है जो इस मामले में एक से अधिक क्लाइंट या सर्वर से संचार को बढ़ावा देता है
आपके प्रश्नों के बारे में:
आप एक डेटाबेस का उपयोग क्यों नहीं करेंगे?
आपको निरंतर डेटा के लिए डेटाबेस का उपयोग करना चाहिए और अस्थायी डेटा के लिए नहीं। मान लें कि आपको प्रेषक से रिसीवर तक एक संदेश भेजना है। संदेश प्राप्त करने पर, रिसीवर एक ऑपरेशन (प्राप्त, प्रक्रिया और भूल) को निष्पादित करता है। उस संदेश को संसाधित करने के बाद, आपको उस संदेश की आवश्यकता नहीं है। इस मामले में, लगातार डेटाबेस में संदेश को संग्रहीत करना एक सही समाधान नहीं है।
यदि आप मैसेजिंग सिस्टम के बजाय डेटाबेस का उपयोग करते हैं तो डेटाबेस में संदेश डालने और हटाने के संबंध में मैं @ हीराम चिरिनो उत्तर से पूरी तरह सहमत हूं ।
सक्रिय होना चाहिए ActiveMQ डेटाबेस है कि न?
वहां कई हैं। अधिक विवरण के लिए प्रलेखन पृष्ठ पर एक नज़र डालें । उपयोग-मामलों पर भी एक नज़र डालें ।
ActiveMQ के आंतरिक को समझने के लिए इस प्रस्तुति पर एक नज़र डालें ।
मान लीजिए आपके पास एक एप्लिकेशन है जिसका उपयोग एक ही समय में कई स्थानों पर किया जा रहा है। यह भी मान लें कि आपके आवेदन में प्रति मिनट अनुरोध की अधिकता है या ऐसा कुछ है जो सामान्य डीबी संचालन इस तरह के संचालन को संभाल नहीं सकता है, Activemq संदेश प्रसंस्करण के रूप में कार्य करता है यह सभी संदेशों को कतार में ले जाता है, इसलिए भले ही आपका कोई एप्लिकेशन किसी एक स्थान पर क्रैश हो जाए। अन्य स्थान प्रभावित नहीं होंगे।