2016-08-28 7 views
5

एज़ूर सर्विस बस में, आप QueueClient और MessageFactory का उपयोग करके ब्रोकर्ड संदेश भेज सकते हैं। मैं जानना चाहता हूं कि आप एक दूसरे पर क्यों उपयोग करना चाहते हैं।क्यूई क्लाइंट बनाम संदेश फैक्टरी

उत्तर

7

Azure Service Bus संदेश भेजने/प्राप्त करने के लिए अलग-अलग तरीका प्रदान करता है।

  • आप QueueClient का उपयोग कतार से संदेश भेजने और प्राप्त करने के लिए कर सकते हैं।
  • आप TopicClient का उपयोग एक विषय
  • को संदेश भेजने के लिए कर सकते हैं और अगर आप SubscriptionClient उपयोग कर सकते हैं एक सदस्यता से संदेश प्राप्त करने के लिए।

    var sender = factory.CreateMessageSender("Queue ou topic path"); 
    
  • :

    var factory = MessagingFactory.CreateFromConnectionString("MyConnectionString"); 
    
    • एक MessageSender दोनों विषय या कतार करने के लिए संदेश भेज सकते हैं:

    MessageSender और MessageReceiver उपयोग करके, आप प्रेषक और प्राप्तकर्ता कि इकाई प्रकार अपरिवर्तनीय हैं बनाने

    MessageReceiver सीए दोनों कतार और सदस्यता से संदेश प्राप्त करते हैं:

    var receiver = factory.CreateMessageReceiver("Queue ou subscription path"); 
    

शोध अमूर्तता यदि आप एक कतार से एक विषय या ठीक इसके विपरीत करने के लिए स्विच करने के लिए, क्योंकि आप बस (सेवा बस इकाई के रास्ते इस में हो सकता है को बदलने की जरूरत की जरूरत है आप और अधिक लचीलापन दे सकते हैं अपने विन्यास फाइल) तो कोई कोड परिवर्तन की जरूरत नहीं है। QueueClient, TopicClient, SubscriptionClient का उपयोग करके, यदि आप किसी कतार से किसी विषय में स्थानांतरित करना चाहते हैं तो आपको अपना कोड बदलना होगा।

तो मेरी सलाह हमेशा MessageReceiver/MessageSender का उपयोग करना है जब आपको किसी Azure ServiceBus कतार विषय/सदस्यता से संदेश भेजना/प्राप्त करना होता है।

नोट: यह इवेंटहब के लिए लागू नहीं है जिसमें एक अलग कार्यान्वयन है।

+0

मैसेजिंग फैक्ट्री के बारे में एक नोट - इसका उपयोग अमूर्त संदेश प्रकारों के लिए नहीं किया जाता है। MessagingFactory का उपयोग इकाई विशिष्ट क्लाइंट और संदेश प्रेषक/रिसीवर (इकाई प्रकार invariant दृष्टिकोण) दोनों बनाने के लिए किया जाता है। इकाई प्रकार और संचालन को मिलाते समय संदेश प्रेषक/रिसीवर का उपयोग करने की सिफारिश पर +1। –

+0

@ सेनफेल्डमैन, मेरी पोस्ट अपडेट की गई, यह नहीं पता कि यह अब और अधिक समझ में आता है ... धन्यवाद !!! – Thomas

+0

इसे प्यार करो! धन्यवाद @ थॉमस। –

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