मैं एक पायथन आधारित एप्लिकेशन (HTTP - REST या jsonrpc इंटरफ़ेस) विकसित कर रहा हूं जिसका उत्पादन स्वचालित परीक्षण वातावरण में किया जाएगा। यह एक जावा क्लाइंट से कनेक्ट होगा जो सभी टेस्ट स्क्रिप्ट चलाता है। यानी, मानव पहुंच की आवश्यकता नहीं है (ऐप का परीक्षण करने के अलावा)।पाइथन बोतल बनाम uwsgi/बोतल बनाम nginx/uwsgi/बोतल
हम इसे रास्पबेरी पीआई पर तैनात करने की उम्मीद करते हैं, इसलिए मैं अपेक्षाकृत तेज़ होना चाहता हूं और एक छोटा पदचिह्न होना चाहता हूं। इसे संभवतः बड़ी संख्या में अनुरोध नहीं मिलेगा (अधिकतम भार पर, शायद प्रति सेकंड), लेकिन यह लंबे समय तक चलने और स्थिर रहने में सक्षम होना चाहिए।
मैं अपनी सादगी (एक फ़ाइल) के कारण बोतल पर एक ढांचे के रूप में बस गया हूं। यह फ्लास्क बनाम टॉसअप था। कोई भी जो फ्लास्क सोचता है वह बेहतर हो सकता है, मुझे बताएं क्यों।
मैं बोतल के अंतर्निहित HTTP सर्वर, इसलिए मैं इन तीन विकल्पों का मूल्यांकन कर रहा हूँ की स्थिरता के बारे में थोड़ा अनिश्चित किया गया है: केवल
- उपयोग बोतल - http सर्वर + अनुप्रयोग के रूप में
- उपयोग uwsgi के शीर्ष पर बोतल - uwsgi HTTP सर्वर के रूप में प्रयोग nginx/uwsgi
सवालों के साथ
- यदि मैं कुछ भी नहीं कर रहा हूं लेकिन पायथन/यूवस्गी, क्या मिश्रण में nginx जोड़ने का कोई कारण है?
- क्या uwsgi/बोतल (या फ्लास्क) संयोजन उत्पादन तैयार माना जाएगा?
- क्या यह संभावना है कि मुझे बोतल के अंतर्निहित एक अलग HTTP सर्वर का उपयोग कर कुछ भी हासिल होगा?
महान उत्तर! धन्यवाद। वर्तमान में मेरा ऐप इस तरह से संरचित है कि यदि आवश्यक हो तो इसे फ्लास्क (या अन्य ढांचे) में बदलने के लिए काफी आसान होना चाहिए, इसलिए मुझे लगता है कि मैं अब बोतल के साथ रहूंगा ... मैंने पहले से ही बहुत समय बिताया है ugsgi के सामने काम कर रहे/कॉन्फ़िगर करने के लिए nginx प्राप्त करने के लिए, और अब तक कोई सफलता नहीं है। तो मुझे लगता है कि मैं जितना संभव हो सके न्यूनतम कॉन्फ़िगरेशन के साथ गनिकोर्न और यूवस्गी दोनों को आजमाउंगा, और केवल यूवीजीआई का चयन करें यदि यह एक बहुत ही स्पष्ट प्रदर्शन लाभ दिखा रहा है; अन्यथा इसकी सादगी के लिए बंदूकधारी (मेरे पास अभी भी यह सब बदलने के लिए बहुत समय है)। – BobIsNotMyName
त्वरित नोट: पाया गया कि nginx काम नहीं कर रहा था क्योंकि सॉकेट फ़ाइल/tmp में थी, और यह डिफ़ॉल्ट रूप से फेडोरा के साथ काम नहीं करती है ... उस समस्या को छोड़कर, इनमें से कोई भी विकल्प काम करने में कोई समस्या नहीं है। सोचो कि मैं अभी भी तैनाती की आसानी के लिए बंदूकधारी से चिपकने जा रहा हूं। – BobIsNotMyName
मुझे लगता है कि मैं # 2 के साथ जा रहा हूं: ugsgi बिना nginx। चीजों को जटिल करने की कोई ज़रूरत नहीं है क्योंकि मुझे नहीं लगता कि मेरा सरल ऐप स्थिर फ़ाइलों को तेजी से सेवा देने से लाभान्वित होगा। –