mongrels


7

के क्लस्टर के रोलिंग पुनरारंभ कैसे करें किसी को भी "रोलिंग" शैली में कैपिस्ट्रानो के माध्यम से एक मोन्गल क्लस्टर को पुनरारंभ करने का एक अच्छा तरीका पता है, उदाहरण के लिए, एक समय में एक मोन्गल। मोंगेल रेलवे ऐप को भी लोड करने के लिए, साथ ही साथ प्रत्येक के लिए प्रतीक्षा समय का थोड़ा अच्छा होगा।

मैंने कुछ खोज की है, और मुझे बहुत कुछ नहीं मिला है, इसलिए मैं mongrel_cluster मणि में कूदने से पहले मदद की तलाश में हूं।

धन्यवाद!

1

सीसॉ Rails Oceania Rubyforge Project में पाया गया एक मणि है जो इस तरह की कार्यक्षमता को मॉन्गेल क्लस्टर्स प्रदान करता है। हालांकि, इस परियोजना कुछ बिट सड़ांध havain नहीं से के बाद से 2007 एक नज़र फिर भी लायक एक रिलीज पीड़ित हो सकता है था यहां तक ​​कि बस विचारों :)


1
#!/bin/bash 
for PIDFILE in /tmp/mongrel.*; do 
    PID=$(cat ${PIDFILE}) 
    kill ${PID} 
    ${RUN_MONGREL_CMD} ${PID} 
    sleep 2 
done 

3

मैं रोलिंग दृष्टिकोण की तुलना में अधिक झूला दृष्टिकोण से सहमत पिंच करने के लिए तुम ढँढ़ रहे हो। समस्या यह है कि आप उन परिस्थितियों में समाप्त होते हैं जहां लोड संतुलन आपके द्वारा संक्रमण के दौरान एप्लिकेशन के विभिन्न संस्करणों के बीच आगे और आगे फेंक सकता है।

जिन समाधानों के साथ हम आए थे (SeeSaw खोजने से पहले, जिसे हम उपयोग नहीं करते हैं) लोड बैलेंसर से आधे से अधिक मोन्गल्स लेना था। उन्हें बंद करो। उन्हें अपडेट करें। उन्हें शुरू करो। लोड बैलेंसर में उन मोन्ग्रेल्स को ऑनलाइन वापस रखो और दूसरे आधा बंद करें। दूसरी छमाही बंद करो। दूसरी छमाही अद्यतन करें। उन्हें शुरू करो। यह उस समय को बहुत कम करता है जहां आपके पास एक साथ चल रहे एप्लिकेशन के दो अलग-अलग संस्करण होते हैं। मैंने ऐसा करने के लिए एक विंडोज़ बैट फ़ाइल लिखा था। (विंडोज़ पर तैनाती की सिफारिश नहीं की जाती है, बीटीडब्ल्यू)

यह ध्यान रखना बहुत महत्वपूर्ण है कि डेटाबेस माइग्रेशन होने से पूरे दृष्टिकोण को थोड़ा खतरनाक बना दिया जा सकता है। यदि आपके पास केवल योजक माइग्रेशन हैं, तो आप तैनाती से पहले किसी भी समय उन्हें चला सकते हैं। यदि आप कॉलम हटा रहे हैं, तो आपको तैनाती के बाद इसे करने की आवश्यकता है। यदि आप कॉलम का नाम बदल रहे हैं, तो इसे एक नया कॉलम बनाने के लिए इसे विभाजित करना बेहतर है और इसे तैनाती से पहले चलाने के लिए प्रवासन और तैनाती के बाद पुराने कॉलम को हटाने के लिए एक अलग स्क्रिप्ट को कॉपी करना बेहतर है। वास्तव में, यदि आप उन्हें व्यवस्थित करने के लिए एक विशिष्ट प्रयास नहीं करते हैं तो सामान्य रूप से उत्पादन डेटाबेस पर अपने नियमित माइग्रेशन का उपयोग करना खतरनाक हो सकता है। इन सभी बिंदुओं को अधिक लगातार वितरण करने के लिए, इसलिए प्रत्येक अद्यतन कम जोखिम और कम जटिल है, लेकिन यह एक और प्रतिक्रिया के लिए एक विषय है।

  0

धन्यवाद मैट, हाँ, मैंने इसका उल्लेख नहीं किया था, लेकिन मैं निश्चित रूप से सुरक्षित पक्ष पर गलती करना चाहता हूं और लगभग किसी भी माइग्रेशन के लिए बस एक और पूर्ण शटडाउन-माइग्रेट-स्टार्टअप करें 25 sep. 082008-09-25 05:07:14