का उपयोग करते समय RabbitMQ का उपयोग करते हुए जावा ओएसजीआई एप्लिकेशन डिज़ाइन करना मैं एक ऐसा एप्लीकेशन डिज़ाइन कर रहा हूं जो ओएसजीआई कंटेनर (वर्तमान में विषुव) में चलाएगा। यह RabbitMQ पर संदेश प्राप्त करेगा और उन्हें आंतरिक रूप से संसाधित करेगा। एप्लिकेशन लगातार सर्वर के रूप में चलाएगा। मेरी वर्तमान योजना है कि खरगोश एमक्यू श्रोता बंडल QueueingConsumer
का उपयोग करके और अपने स्वयं के धागे में चलकर, अपनी कतारों को कॉन्फ़िगर करें और श्रोताओं को रखें। श्रोताओं संदेश को संभालने के लिए एक या अधिक प्रसंस्करण सेवाएं कॉल करेंगे। प्रोसेसर को डेटाबेस एक्सेस करने के लिए जेडीबीसी कॉल करने की आवश्यकता है। मैं उस क्रम को नियंत्रित करने में सक्षम होना चाहता हूं जिसमें प्रोसेसर कहा जाता है। खरगोश एमक्यू श्रोताओं को रिकोड किए बिना बाद में अधिक सेवाओं को जोड़ने के लिए लचीलापन होना अच्छा लगेगा।प्रीपेडस्टेटमेंट
मुझे जिस समस्या का सामना करना पड़ता है वह यह है कि संदेश विस्फोट या धीरे-धीरे आ सकते हैं। मैं डेटाबेस एक्सेस को तेज़ करने के लिए PreparedStatement
का उपयोग करने में सक्षम होना चाहता हूं, लेकिन मैं कनेक्शन को लंबे समय तक नहीं खोलना चाहता, जबकि कुछ भी नहीं चल रहा है। मैंने सीधे DefaultConsumer
उपclassing के बारे में सोचा है और इसे खरगोश एमक्यू Connection
में धागे पर चलाने की अनुमति दी है, लेकिन फिर जब कुछ भी नहीं चल रहा है तो मुझे यह जानने की क्षमता खो जाती है। मेरा मूल विचार संदेश प्रोसेसर को ओएसजीआई सेवाओं के रूप में पूरी तरह से अलग रखना था, और हर बार जब इसे बुलाया जाता है तो प्रत्येक पूल से डेटाबेस कनेक्शन लेता है, लेकिन यह तैयार बयानों का लाभ खो देता है। मैं टोमकैट जेडीबीसी पूल का उपयोग कर रहा हूं, और ऐसा लगता है कि तैयार कथन कैशिंग नहीं है। साथ ही, मुझे यकीन नहीं है कि प्रत्येक कॉल के लिए तैयार कथन तैयार करने में कितना महंगा होगा, लेकिन यह अपमानजनक लगता है।
अब तक का सबसे अच्छा विचार है कि मेरे श्रोताओं को एक डबल लूप में संसाधित करना है। बाहरी पाश एक संदेश के लिए इंतजार कर रहा है, फिर एक आंतरिक लूप को कॉल करता है जो डेटाबेस कनेक्शन और तैयार कथन स्थापित करता है और तब तक चलता है जब तक कि निर्दिष्ट समय समाप्ति के लिए कोई और संदेश नहीं आ जाता है, फिर उसके कनेक्शन बंद कर देता है और बाहरी लूप पर वापस आ जाता है। मुझे यह एक प्रोसेसिंग के लिए काम करने के लिए मिला, लेकिन मुझे यह समझने में परेशानी हो रही है कि अगर मेरे पास एकाधिक प्रोसेसर हैं जो अलग-अलग तैयार कथन हो सकते हैं।
शायद मुझे अपने श्रोताओं में प्रसंस्करण कई सेवाओं और हार्ड कोड का विचार छोड़ना होगा।
कोई सुझाव? धन्यवाद!
धन्यवाद। मैं कड़ी मेहनत के स्कूल में सीखने, ओएसजीआई नौसिखिया बहुत सुंदर हूं। मैं समन्वयक सेवा से परिचित नहीं हूं, लेकिन मैं इसे देख लूंगा।चूंकि मैंने इसे पोस्ट किया है, इसलिए मुझे सेवाओं के बजाय सेवा निर्माता को पंजीकृत करने का विचार है। कॉलर वास्तविक सेवाओं को बनाने के लिए उनका उपयोग कर सकता है, जिससे उन्हें "बस समय में" तैयार तैयार बयान तैयार करने की अनुमति मिलती है, गतिविधि के विस्फोट के दौरान उनका उपयोग किया जाता है, और जब खोपड़ी होती है तो उन्हें बंद कर देते हैं। –
मैंने इक्विनोक्स के संस्करण की जांच की है जो मैं चला रहा हूं, और मुझे समन्वयक सेवा नहीं दिखाई दे रही है। क्या ऐसा कुछ खास है जिसे मुझे चलाने के लिए करना है? मुझे लगता है कि मैं रिलीज 4 संस्करण 4.3 का उपयोग कर रहा हूं। –
मेरा मानना है कि * समन्वयक सेवा * * कोड के एक टुकड़े को संदर्भित करता है [वह] आपकी सेवाओं के लिए कतार भेजता है "*। मैंने किसी भी मानक ओएसजीआई-सेवा के बारे में कभी नहीं सुना है जिसे * समन्वयक * कहा जाता है। –