2012-02-22 26 views
6

मैं कुछ दर्जन मशीनों के वितरित वीडियो एन्कोडिंग क्लस्टर को बनाने की तलाश में हूं। मैंने पहले कभी मैसेजिंग कतार के साथ काम नहीं किया, लेकिन 2 जो मैंने चारों ओर खेलना शुरू किया, वह गियरमैन और बीनस्टॉकड थे।वितरित वीडियो एन्कोडिंग - गियरमैन बनाम बीनस्टॉकड

बीनस्टॉक गियरमैन की तुलना में उपयोग करने के लिए बहुत आसान और आसान प्रतीत होता है, लेकिन इसकी विशेषता उतनी ही समृद्ध नहीं है।

एक बात जो मुझे समझ में नहीं आती है ... आप सभी सर्वरों पर नए श्रमिकों को कैसे बढ़ाते हैं? मैं PHP का उपयोग करने की योजना बना रहा हूं। क्या यह "&" के साथ सीएलआई में वर्कर.पीपी चलाने जैसा आसान है और बस यह काम के लिए प्रतीक्षा कर रहा है?

मैंने देखा कि गियरमैन वास्तव में नौकरी के बाद प्रक्रिया को मार नहीं पाता है, लेकिन बीनस्टॉक करता है, इसलिए मुझे प्रत्येक सर्वर पर प्रत्येक नौकरी के बाद स्क्रिप्ट को पुनरारंभ करना होगा।

वर्तमान में इम अधिक बीनस्टॉक, बातें मैं की योजना बनाई के सामान्य प्रवाह का उपयोग करने के लिए इच्छुक था:

भागो एक सूक्ष्म विवेचन प्रत्येक सर्वर की जाँच करता है कि अगर देखते हैं पर क्रॉन पूर्व निर्धारित श्रमिकों की राशि से चल रहा है। यदि यह होने की अपेक्षा कम है, तो नई कार्यकर्ता प्रक्रियाओं को जन्म दें। प्रत्येक प्रक्रिया में लगभग 2-30 मिनट लगेंगे।

शायद मेरे तर्क में मुझे कोई दोष है? मुझे यह बताना है कि ऐसा करने का "बेहतर" या "उचित" तरीका क्या होगा?

+0

फेनस्टॉक को जांचना सुनिश्चित करें: https://github.com/pda/pheanstalk –

+0

मेरे नाइवेट को क्षमा करें, लेकिन उन दो मैसेजिंग फ्रेमवर्कों में से किसी एक के साथ, "सर्वर" कहां स्थापित हो जाता है? रिमोट मशीन पर जो ऑफ-लोडेड प्रक्रिया को संभालेगी, या मशीन जो नई नौकरी की रिमोट मशीन को सूचित करेगी? – ariestav

+0

उन सेवाओं में से किसी एक का उपयोग करने के लिए बहुत महंगा है। –

उत्तर

0

शब्दावली मैं केवल कोशिश करने और स्पष्ट होने के लिए उपयोग करूंगा ... निर्माता और उपभोक्ता की अवधारणा है। निर्माता एक कतार (यानी बीनस्टॉक सेवा) पर रखी गई नौकरियों को उत्पन्न करता है जिसे तब उपभोक्ता द्वारा पढ़ा जाता है।

उपभोक्ता लिखने के कई तरीके हैं। आप क्रॉन जॉब के माध्यम से या तो प्रत्येक एक्स टाइम फ्रेम को काम चला सकते हैं या सिर्फ एक उपभोक्ता को php (या आप क्या हैं) के माध्यम से थोड़ी देर में चल रहे हैं।

सेवा स्थापित करने के लिए वास्तव में आप क्या कर रहे हैं पर निर्भर है। मेरे लिए मैं आमतौर पर उपभोक्ता (ओं) या उसके अलग-अलग बॉक्स पर सेवा स्थापित करता हूं (कभी-कभी बाद में आपकी जरूरतों के आधार पर ओवरकिल होता है)।

यदि आप कतार पक्ष पर स्थायित्व चाहते हैं तो आपको बीनस्टॉक के बिनलॉग पैरामीटर (-b) का उपयोग करना चाहिए। यदि आपकी बीनस्टॉक सेवा के साथ कुछ होता है तो यह आपको कतारों में डेटा के न्यूनतम नुकसान के साथ पुनरारंभ करने की अनुमति देगा (यदि कोई जानकारी नहीं है)। निर्माता पक्ष पर स्थायित्व कई कतारों के खिलाफ प्रयास करने के लिए आ सकता है।