MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

हैंडलर के प्रकार के आधार पर विषय रखने के लिए रेबस को कैसे कॉन्फ़िगर करें

कुछ चीजें हैं जो आपके प्रश्न के साथ भ्रमित करने वाली लगती हैं।

लेकिन मुझे लगता है कि आपका मौलिक प्रश्न यह है कि यह कैसे सुनिश्चित किया जाए कि प्रत्येक संदेश प्रत्येक ग्राहक द्वारा केवल एक बार संसाधित किया जाता है।

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

फिर आप प्रत्येक ग्राहक में जितने चाहें उतने या कम हैंडलर रख सकते हैं। प्रत्येक आने वाले संदेश के लिए सभी संगत हैंडलर निष्पादित किए जाएंगे।

रीबस के साथ, प्रत्येक आमंत्रण Configure.With(...).(...).Start() के लिए आपको एक अलग एंडपॉइंट देगा - इसलिए आपके मामले में, मेरा सुझाव है कि आप सब्सक्राइबर एंडपॉइंट निर्माण को एक विधि में लपेटें, जिसे आप इस तरह से लागू कर सकते हैं:

var event1Subscriber = CreateSubscriber("subscriber_event1");
event1Subscriber.Subscribe<Event1>().Wait();

var event2Subscriber = CreateSubscriber("subscriber_event2");
event2Subscriber.Subscribe<Event2>().Wait();

var event3Subscriber = CreateSubscriber("subscriber_event3");    
event3Subscriber.Subscribe<Event3>().Wait();

// ...

जहां CreateSubscriber तब कुछ इस तरह होगा:

public IBus CreateSubscriber(string queueName)
{
    return Configure.With(GetContainerAdapter())
        .Transport(t => t.UseMsmq(queueName))
        .Start();        
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. यूएस-एएससीआईआई में अमान्य बाइट अनुक्रम (रूबी 1.9 + रेल 2.3.8 + मोंगोडब + मोंगो_मैपर)

  2. संदेश माता-पिता के अंदर संदेश उत्तर एम्बेड करना mongodb का उपयोग करके mongodb के साथ

  3. Laravel 5.2 Mongo MonogDB MongoDB URI को पार्स करने में विफल रहा

  4. केवल मानों की एक सरणी के रूप में परिणाम लौटाएं

  5. MongoDB में फ़ाइल आयात करते समय मौजूदा दस्तावेज़ों को कैसे बदलें