के साथ http अनुरोध/प्रतिक्रिया मॉडल को कनेक्ट करना सिंक्रोनस क्यूई आधारित मॉडल के साथ सिंक्रोनस http अनुरोध/प्रतिक्रिया मॉडल को जोड़ने का एक अच्छा तरीका क्या है?एसिंक्रोनस कतार
जब उपयोगकर्ता का HTTP अनुरोध आता है तो यह एक कार्य अनुरोध उत्पन्न करता है जो एक कतार (beanstalkd इस मामले में) पर जाता है। श्रमिकों में से एक अनुरोध को उठाता है, काम करता है, और एक प्रतिक्रिया तैयार करता है।
कतार मॉडल अनुरोध/प्रतिक्रिया नहीं है - केवल अनुरोध हैं, जवाब नहीं। तो सवाल यह है कि, हम HTTP की दुनिया में वापस प्रतिक्रिया कैसे प्राप्त करते हैं और उपयोगकर्ता को वापस कैसे प्राप्त करते हैं?
विचार:
Beanstalkd हल्के वजन विषयों या कतारों का समर्थन करता है (वे उन्हें ट्यूबों कहते हैं)। हम प्रत्येक अनुरोध के लिए एक ट्यूब बना सकते हैं, क्या कर्मचारी उस ट्यूब पर एक संदेश बना सकता है, और http प्रक्रिया बैठकर प्रतिक्रिया के लिए ट्यूब पर प्रतीक्षा करें। विशेष रूप से इस तरह से पसंद न करें क्योंकि इसमें स्मृति लेने के आसपास बैठे अपाचे प्रक्रियाएं हैं।
प्रतिक्रिया के लिए http क्लाइंट पोल है। उपयोगकर्ता का प्रारंभिक HTTP अनुरोध कतार पर नौकरी को बंद कर देता है और तुरंत लौटता है। प्रतिक्रिया के लिए समय-समय पर ग्राहक (उपयोगकर्ता का ब्राउज़र) चुनाव। बैकएंड पर कार्यकर्ता अपनी प्रतिक्रिया को memcached में डालता है, और हम nginx को memcached से कनेक्ट करते हैं ताकि मतदान हल्का वजन हो।
Comet का उपयोग करें। दूसरे विकल्प के समान, लेकिन मतदान से बचने के लिए fancier http संचार के साथ।
मैं 2 की तरफ झुक रहा हूं क्योंकि यह आसान और अच्छी तरह से पता है (मैंने अभी तक धूमकेतु का उपयोग नहीं किया है)। मुझे लगता है कि शायद यह एक बेहतर बेहतर मॉडल है जिसे मैंने नहीं सोचा है। तुम क्या सोचते हो?
मुझे एक ही समस्या है और एक ही विकल्प का मूल्यांकन करने की प्रक्रिया में है। क्या आप जो साझा करते हैं, वह कैसे किया जाता है और आपके कार्यान्वित समाधान के पेशेवर और विपक्ष क्या हैं? धन्यवाद – tropikalista