के साथ संदेशों को लाने के लिए मैं एक और अपरंपरागत तरीके से RabbitMq का उपयोग करने की कोशिश कर रहा हूं (हालांकि इस बिंदु पर मैं आवश्यकता होने पर कोई अन्य संदेश कतार कार्यान्वयन कर सकता हूं)। मेरे उपभोक्ताओं को खरगोश पुश संदेश छोड़ने के बजाय, उपभोक्ता एक कतार से जुड़ता है और एन संदेशों का एक बैच प्राप्त करता है (जिसके दौरान यह कुछ उपभोग करता है और संभवतः कुछ अस्वीकार करता है), जिसके बाद यह दूसरी कतार में जाता है। यह अनावश्यकता के लिए किया जाता है। अगर कुछ उपभोक्ताओं को क्रैश होता है तो सभी संदेशों को किसी अन्य उपभोक्ता द्वारा खपत की गारंटी दी जाती है।लॉब और बैच RabbitMq
समस्या यह है कि मेरे पास कई उपभोक्ता हैं और मैं नहीं चाहता हूं कि वे एक ही कतार में प्रतिस्पर्धा करें। क्या कतार पर लॉक की गारंटी देने का कोई तरीका है? यदि नहीं, तो क्या मैं कम से कम यह सुनिश्चित कर सकता हूं कि यदि 2 उपभोक्ता एक ही कतार से जुड़े हैं तो वे एक ही संदेश नहीं पढ़ते हैं? लेन-देन मुझे कुछ हद तक मदद कर सकता है लेकिन मैंने बात सुनी है कि वे खरगोश एमक्यू से हटा दिए जाएंगे।
अन्य वास्तुशिल्प सुझावों का भी स्वागत है।
धन्यवाद!
संपादित करें: टिप्पणी में बताया गया है कि मुझे संदेशों को संसाधित करने की आवश्यकता में एक विशिष्टता है। वे केवल समूहों में समझ में आते हैं और एक उच्च संभावना है कि संबंधित संदेश एक कतार में एक साथ चिपके हुए हैं। उदाहरण के लिए यदि मैं 100 संदेशों का बैच खींचता हूं, तो एक उच्च संभावना है कि मैं संदेश 1-3, 4-5,6-10 आदि के साथ कुछ करने में सक्षम हूं। अगर मैं कुछ संदेशों के लिए समूह ढूंढने में विफल रहता हूं I उन्हें कतार में पुनः सबमिट कर देगा। WorkQueue काम नहीं करेगा क्योंकि यह एक ही समूह से संदेशों को कई श्रमिकों तक फैलाएगा जो नहीं जानते कि उनके साथ क्या किया जाए।
जाहिर उपभोक्ताओं की तरह कुछ का उपयोग कर आपस में सिंक कर सकते हैं [बातुनी] (http://en.wikipedia.org/wiki/Gossip_protocol) मामले में यह संभव नहीं है, लेकिन मैं उत्सुक था ... –