यहाँ कुछ खोज करने के बाद मेरे विचार:
- आमतौर पर Azure (डेटाबेस, VM, ...) पर आपके द्वारा एक्सेस किए जाने वाले प्रत्येक संसाधन पर किसी प्रकार के पुन:प्रयास तर्क को लागू करना एक अच्छा अभ्यास है। मोंगोडीबी के लिए आंशिक कार्यान्वयन है, इसलिए आपको संभावित रूप से अपना खुद का लिखना चाहिए। यह भी देखें यह समस्या और यह ।
- यदि संभव हो तो Azure पर सभी संसाधन एक ही Azure वर्चुअल नेटवर्क में होने चाहिए (इस तरह सभी कनेक्शन सार्वजनिक Ip के बजाय Azure Private Ip का उपयोग करके बनाए जाते हैं। यह सुरक्षा कारणों से भी उपयोगी है क्योंकि आपको समापन बिंदु खोलने की आवश्यकता नहीं है जनता के लिए।
- Azure पर MongoDb परिनियोजित करते समय आधिकारिक MongoDb दिशानिर्देशों .
- इस विशेष मामले में आपको
net.ipv4.tcp_keepalive_time
सेट करना चाहिए tcp से कम मान के लिए Azure को जीवित रखें, जो कि डिफ़ॉल्ट रूप से 240 सेकंड है। इस तरह कनेक्शन बंद हो जाता है और MongoDb ड्राइवर इस स्थिति को इंटरसेप्ट कर सकता है और एक नया कनेक्शन खोल सकता है। यदि कनेक्शन Azure द्वारा बंद कर दिया गया है, तो ड्राइवर इसे इंटरसेप्ट नहीं कर सकता है। यदि आप Azure पर इस सेटिंग को बदलना चाहते हैं (अनुशंसित नहीं) तो आप इसे सार्वजनिक आईपी कॉन्फ़िगरेशन के अंदर पा सकते हैं।
अपने विकास के माहौल में मैंने net.ipv4.tcp_keepalive_time
सेट किया है 120 तक और अब सब कुछ ठीक काम करने लगता है। विचार करें कि यदि आप डॉकर कंटेनर के अंदर MondoDb होस्ट करते हैं तो आपको यह सेटिंग डॉकर होस्ट पर सेट करनी चाहिए।
यहां कुछ अन्य उपयोगी लिंक हैं:
- http://focusmatic. tumblr.com/post/39569711018/solving-mongodb-connection-losses-on-windows-azure
- https://docs.mongodb.org/ecosystem/platforms/windows -अज़ूर/
- https ://michaelmckeownblog.wordpress.com/2013/12/04/resolving-internal-ips-vs-dns-names-between-vms/
- https://gist.github.com/davideicardi/f2094c4c3f3e00fbd490
- Azure पर MongoDB कनेक्शन की समस्याएं
- MongoDB कनेक्शन टाइमआउट (Azure)