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

हम एक्सप्रेस/नोडज में अनुरोध प्राथमिकता को कैसे संभालते हैं?

नोड.जेएस में, केवल एक अनुरोध वास्तव में एक समय में चलता है (जावास्क्रिप्ट दुभाषिया सिंगल थ्रेडेड है) जब तक आप मूल कोड में किसी प्रकार के एसिंक ऑपरेशन को हिट नहीं करते हैं और फिर दूसरा अनुरोध चलना शुरू हो जाता है जबकि दूसरा I/O की प्रतीक्षा कर रहा है . यदि कुछ सीमित संसाधन हैं जो सभी अनुरोधों के बाद हैं, तो यह देखने की एक दौड़ है कि संसाधन प्राप्त करने के लिए आपके कोड के माध्यम से कौन सा अनुरोध काफी दूर हो जाता है। यदि आप अपने सर्वर को अतिरिक्त मापनीयता के लिए क्लस्टर करते हैं, तो प्रत्येक क्लस्टर एक Javascript थ्रेड चलाता है।

यदि आप प्रत्येक आने वाले अनुरोध को एक कतार में प्रतीक्षा करते हैं, जब तक कि इससे पहले आने वाले सभी अनुरोध पूरी तरह से नहीं हो जाते (ऐसा कुछ जो किया जा सकता है), तो आप गंभीरता से अपने नोड.जेएस सर्वर की मापनीयता को बर्बाद कर देंगे और अधिकांश समय यह होगा कुछ I/O ऑपरेशन किए जाने की प्रतीक्षा में बेकार बैठे रहें, इसलिए ऐसा लगता है कि यह सही डिज़ाइन नहीं है।

यहां सामान्य योजना यह है कि संसाधन का दावा करने के लिए प्राप्त होने वाले पहले अनुरोध को यह है (भले ही एक ही समय में कई संसाधन चल रहे हों)। यह हमेशा अनुरोध है कि आपके सर्वर पर पहली बार आया है या नहीं, यह ज्ञात नहीं है, लेकिन यह करीब होगा और उपयोगकर्ता समुदाय को यह जानने की संभावना नहीं है कि क्या यह कुछ मिलीसेकंड में भिन्नता के कारण बंद हो गया है दो अनुरोधों की प्रसंस्करण गति।

आपको यह सुनिश्चित करना होगा कि आपका कोड जो साझा संसाधनों (जैसे डेटाबेस) तक पहुंचता है, समवर्ती के लिए सुरक्षित है और साझा डेटा के बारे में कोई परेशानी नहीं करता है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला उप-दस्तावेज़ संपत्ति पर अद्वितीय विशेषता को लागू करता है

  2. ईसी 2 सर्वर या एडब्ल्यूएस सिंपलडीबी पर मोंगोडीबी?

  3. MongoDB 3.2 में पहला उपयोगकर्ता बनाना।

  4. MongoDB के साथ गुणा एकत्रीकरण का उपयोग करना

  5. Node.js पर MongoDB कनेक्शन के लिए सबसे अच्छा अभ्यास क्या है?