2008-12-30 3 views
46

मुझे एमएसएमक्यू (माइक्रोसॉफ्ट मेसेज क्व्यूइंग) के साथ काम करने की ज़रूरत है। यह क्या है, यह क्या है, यह कैसे काम करता है? यह वेब सेवाओं से अलग कैसे है?माइक्रोसॉफ्ट मेसेज क्व्यूइंग (एमएसएमक्यू) क्या है? यह कैसे काम करता है?

उत्तर

38

इसके नाम के अनुसार, यह सिर्फ एक कतार प्रबंधक है।

आप कतार में ऑब्जेक्ट्स (क्रमबद्ध) भेज सकते हैं जहां तक ​​आप उन्हें प्राप्त नहीं करेंगे तब तक वे रहेंगे। यह सामान्य रूप से एक decoupled रास्ता

में अनुप्रयोगों के बीच संदेशों या वस्तुओं को भेजने के लिए यह webservices के साथ कोई संबंध नहीं है, वे दो अलग बातें

MSMQ पर जानकारी कर रहे हैं प्रयोग किया जाता है:

https://msdn.microsoft.com/en-us/library/ms711472(v=vs.85).aspx

वेब सर्विसेज पर जानकारी:

http://msdn.microsoft.com/en-us/library/ms972326.aspx

+3

MSMQ पर ऊपर के लिंक काम नहीं किया (मुझे कुछ सामान्य जानकारी पृष्ठ पर रीडायरेक्ट किया गया), लेकिन इस यूआरएल ने मेरे लिए काम किया https://msdn.microsoft.com/en-us/library/ms711472(v=vs.85).aspx –

45

@ जुआन के उत्तर के सभी सम्मान के साथ, दोनों डेटा के आदान-प्रदान के तरीके हैं दो डिस्कनेक्ट की गई प्रक्रियाएं, यानी इंटरप्रोसेस संचार चैनल (आईपीसी)। संदेश कतार असीमित हैं, जबकि webservices तुल्यकालिक हैं। वे ऐसा करने के लिए विभिन्न प्रोटोकॉल और बैक-एंड सेवाओं का उपयोग करते हैं ताकि वे कार्यान्वयन में पूरी तरह से भिन्न हों, लेकिन उद्देश्य के समान।

आप संदेश कतारों का उपयोग करना चाहते हैं, जब कोई संभावना है कि अन्य संचार प्रक्रिया उपलब्ध न हो, फिर भी आप अभी भी ग्राहक के चयन के समय संदेश भेजना चाहते हैं। डिलिवरी तब होती है जब दूसरी छोर पर प्रक्रिया जागती है और संदेश के आगमन की अधिसूचना प्राप्त होती है।

+4

सम्मान के लिए धन्यवाद =) I एमएसएमक्यू को एप से ऐप से ऑब्जेक्ट भेजने के तरीके के रूप में अन्य ऐप के लिए डेटा पास करने की आवश्यकता के बिना किसी भी चीज को करने के लिए, और पैरामीटर के साथ "रिमोट फ़ंक्शन पर कॉल" के रूप में वेबवर्क्स को देखने के तरीके के रूप में देखें और परिणामस्वरूप, मैंने इनमें से प्रत्येक के लिए उपयोग किया विशिष्ट उद्देश्यों – juan

20

ध्यान दें कि आप एमएसएमक्यू के ऊपर एक अमूर्त परत के रूप में विंडोज संचार फाउंडेशन (डब्ल्यूसीएफ) का उपयोग कर सकते हैं। यह आपको केवल एक-तरफा संचालन के साथ - सेवा के साथ काम करने का अनुभव देता है।

अधिक जानकारी के लिए देखें: http://msdn.microsoft.com/en-us/library/ms789048.aspx

--larsw

27

लेन-देन की कतार प्रबंधन 101

एक लेन-देन संबंधी कतार एक मिडलवेयर प्रणाली है कि अतुल्यकालिक रूप से मार्गों में से एक एक और प्रकार के बीच के संदेशों मेजबान जो किसी भी समय किसी भी समय कनेक्ट हो सकते हैं या नहीं भी हो सकते हैं। इसका मतलब है कि यह कहीं भी संदेश को बनाए रखने में सक्षम होना चाहिए। ऐसे सिस्टम के उदाहरण MSMQ और IBM MQ

एक ट्रांज़ेक्शनल क्यूई distributed transaction में भी भाग ले सकता है, और रोलबैक संदेशों के निपटारे को ट्रिगर कर सकता है।इसका मतलब यह है कि at-most-once सेमेन्टिक्स या गारंटीकृत डिलीवरी के साथ एक संदेश को वापस घुमाने के लिए वितरित करने की गारंटी है। संदेश वितरित नहीं किया जाएगा यदि:

  • होस्ट एक पोस्ट संदेश लेकिन मेजबान बी जुड़ा हुआ नहीं है

  • कुछ (संभवतः नहीं बल्कि जरूरी होस्ट एक से शुरू) रोल बैक लेन-देन

  • बी के बाद लेन-देन वापस

लुढ़का हुआ है जोड़ता है

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

पर संदेश के प्रभावों को भी उलट देगा नोट करें कि कोई कतार में संदेश को सबसे अधिक बार गारंटी के साथ पोस्ट कर सकता है वितरण। यदि लेनदेन किया गया है तो होस्ट ए मान सकता है कि संदेश delivered by the reliable transport medium. है यदि लेनदेन वापस लुढ़का गया है, तो होस्ट ए मान सकता है कि संदेश के किसी भी प्रभाव को उलट दिया गया है।

वेब सेवा

एक वेब सेवा remote procedure call या अन्य सेवा (जैसे RESTFul API's) एक (आमतौर पर) HTTP सर्वर द्वारा प्रकाशित किया। यह एक तुल्यकालिक अनुरोध/प्रतिक्रिया प्रोटोकॉल है और प्रोटोकॉल में डिलीवरी की कोई गारंटी नहीं है। यह सत्यापित करने के लिए क्लाइंट पर निर्भर है कि सेवा सही ढंग से चल रही है। आम तौर पर यह कॉल के अनुरोध या समय समाप्ति के उत्तर के माध्यम से होगा।

बाद के मामले में, वेब सेवाएं सबसे अधिक बार-बार अर्थशास्त्र की गारंटी नहीं देती हैं। सर्वर सेवा को पूरा कर सकता है और प्रतिक्रिया देने में विफल रहता है (संभवतः सर्वर के बाहर कुछ गलत हो रहा है)। आवेदन इस स्थिति से निपटने में सक्षम होना चाहिए।

IIRC, शोकहारा सेवाओं idempotent किया जाना चाहिए (एक ही राज्य में एक ही सेवा के आमंत्रण के किसी भी संख्या के बाद हासिल की है), जो वेब सेवा आर्किटेक्चर में/सफलता की गारंटी अधिसूचना विफलता की इस कमी से निपटने के लिए एक रणनीति है । विचार यह है कि अवधारणात्मक रूप से एक सेवा का आह्वान करने के बजाय राज्य लिखता है, इसलिए कोई भी कई बार लिख सकता है। इसका मतलब है कि सफलता के बारे में प्रतिक्रिया की कमी को एप्लिकेशन द्वारा बर्दाश्त किया जा सकता है क्योंकि यह पोस्टिंग को फिर से कोशिश कर सकता है जब तक कि उसे सर्वर से 'सफलता' संदेश प्राप्त न हो जाए।

2

जैसा कि सभी ने समझाया है कि एमएसएमक्यू संदेशों के लिए कतार के रूप में उपयोग किया जाता है। संदेश वास्तविक डेटा, ऑब्जेक्ट और कुछ भी जो आप serialize और तार भर में भेज सकते हैं के लिए रैपर हो सकता है। एमएसएमक्यू की अपनी सीमाएं हैं। एमएसएमक्यू 1.0 और एमएसएमक्यू 2.0 में 4 एमबी संदेश सीमा थी। यह प्रतिबंध एमएसएमक्यू 3.0 के साथ हटा दिया गया था। संदेश उन्मुख मिडलवेयर (एमओएम) एक अवधारणा है जो मैसेजिंग पर भारी निर्भर करती है। एंटरप्राइज़ सर्विस बस नींव मैसेजिंग पर बनाया गया है। ये सभी नई प्रौद्योगिकियां, विश्वसनीयता के साथ असीमित डेटा वितरण के लिए मैसेजिंग पर निर्भर करती हैं।

8

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

आप कोड के छोटे लाइनों के साथ dotnet में MSMQ उपयोग कर सकते हैं, बस अपने MessageQueue वस्तु घोषित और फोन Receive और Send तरीकों। संदेश स्वयं सामान्य स्ट्रिंग या बाइनरी डेटा हो सकता है।

0

एमएसएमक्यू माइक्रोसॉफ्ट मैसेजिंग कतार के लिए खड़ा है।

यह बस कतार है जो संग्रहीत तरीके से स्टोर संदेश है ताकि यह डीबी (उसी मशीन पर या सर्वर पर हो) हो सके। वहां पर कतार के विभिन्न प्रकार हैं जो स्वयं के बीच संदेश को वर्गीकृत करते हैं। अगर संदेश में कुछ समस्या/त्रुटि है या अमान्य संदेश पास हो गया है तो स्वचालित रूप से मृत कतार में जाता है जो दर्शाता है कि यह आगे की प्रक्रिया नहीं है। लेकिन मृत कतार में संदेश पारित करने से पहले यह अधिकतम गिनती का पुन: प्रयास करेगा और जब तक यह प्रक्रिया न हो जाए तो यह इसे मृत कतार में भेज सकता है। आमतौर पर क्लाइंट मशीन से सर्वर या डीबी में लॉग संदेश भेजने के लिए इसका उपयोग किया जाता है ताकि यदि क्लाइंट मशीन पर कोई समस्या हो तो डेवलपर या सपोर्ट टीम समस्या को हल करने के लिए लॉग के माध्यम से जा सकती है। एमएसएमक्यू माइक्रोसॉफ्ट द्वारा लॉग फ़ाइल का रिकॉर्ड प्राप्त करने और लॉग फ़ाइल का उपयोग करके समाधान प्राप्त करने में आसान सेवा प्रदान करता है। आप इस ब्लॉग http://msdn.microsoft.com/en-us/library/ms711472(v=vs.85).aspx

1

MSMQ- Microsoft संदेश INF कतारबद्ध से बेहतर विचार प्राप्त: • MSMQ एक संदेश कतार माइक्रोसॉफ्ट द्वारा विकसित कार्यान्वयन है। • यह अपने विंडोज सर्वर ऑपरेटिंग सिस्टम में तैनात है। • यह एक मैसेजिंग प्रोटोकॉल है जो अलग-अलग सर्वर/प्रक्रियाओं पर चलने वाले अनुप्रयोगों को असफल तरीके से संवाद करने की अनुमति देता है। • एमएसएमक्यू आमतौर पर सॉफ्टवेयर के निर्माण के लिए एंटरप्राइज़ में उपयोग किया गया है। • एमएसएमक्यू उन संदेशों को रखकर विश्वसनीय वितरण सुनिश्चित करता है जो एक कतार में अपने इच्छित गंतव्य तक पहुंचने में विफल रहते हैं और फिर गंतव्य पहुंचने के बाद उन्हें फिर से भेजते हैं। • एमएसएमक्यू लेनदेन का भी समर्थन करता है। यह एकाधिक कतारों पर कई संचालन की अनुमति देता है, एक ही लेनदेन में लिपटे सभी परिचालनों के साथ, इस प्रकार यह सुनिश्चित करना कि या तो सभी या कोई भी ऑपरेशन प्रभावी नहीं होगा। • संदेश कतार (एमएसएमक्यू) तकनीक अलग-अलग समय पर चलने वाले अनुप्रयोगों को अस्थायी रूप से ऑफ़लाइन नेटवर्क और सिस्टम में संवाद करने में सक्षम बनाती है जो अस्थायी रूप से ऑफ़लाइन हो सकती हैं। निम्नलिखित बंदरगाहों Microsoft संदेश INF कतारबद्ध के संचालन के लिए उपयोग किया जाता है: टीसीपी •: 1801 • आरपीसी: 135, 2101 *, 2103 *, 2105 * • यूडीपी: 3527, 1801

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