2012-08-29 23 views
12

मैं समझने की कोशिश कर रहा हूं कि मैं 50 से अधिक विभिन्न ग्राहकों से 10,000 अनुरोध/सेकंड को संभालने के लिए स्केल करने योग्य होने के लिए Azure Service Bus Topic कैसे बना सकता हूं। मुझे यह आलेख माइक्रोसॉफ्ट - http://msdn.microsoft.com/en-us/library/windowsazure/hh528527.aspx पर मिला। यह, कई संदेश कारखानों बनाने भेजने और अतुल्यकालिक रूप से प्राप्त करने, बैच भेजने कर/प्राप्त की तरह नीला सेवा बस पैमाने पर करने के अच्छा इनपुट के बहुत प्रदान करता है।Azure सेवा बस स्केलेबिलिटी

लेकिन ये सभी इनपुट प्रकाशक और ग्राहक ग्राहक परिप्रेक्ष्य से हैं। क्या होगा यदि विषय चलने वाला नोड लेनदेन की बड़ी संख्या को संभाल नहीं सकता है? मैं इसकी निगरानी कैसे करूं? मेरे पास एकाधिक नोड्स पर चलने वाला विषय कैसे हो सकता है? उस पर कोई भी इनपुट सहायक होगा।

भी सोच रहा है, तो किसी भी एक विषय/कतार के साथ किसी भी क्षमता का परीक्षण किया है और मैं उन परिणामों को देखने के लिए उत्सुक हूँ ...

धन्यवाद, प्रसन्ना

+0

आपका क्या मतलब "विषय कई नोड्स पर चल रहा है" करते हैं? –

उत्तर

12

यदि आपको प्रति सेकंड 10K या 100K या 1M या अधिक अनुरोधों की आवश्यकता है तो राजमार्ग पर क्या किया जा रहा है, इसे देखें। अधिक यातायात, अधिक लेन।

आप कई इकाइयों में अपने यातायात को विभाजित करके सेवा बस से प्रभावी ढंग से मनमाने ढंग से प्रवाह दर प्राप्त कर सकते हैं। सेवा बस विश्वसनीयता के बारे में कई आश्वासन देता है, उदा। कि हम संदेशों एक बार हम उन्हें आप से ले लिया खोना नहीं है या हम इसमें लगातार अनुक्रम संख्या असाइन करें और है कि एक ही विषय की तरह अलग-अलग संस्थाओं पर throughput प्रभाव पड़ता है। एक्स एक्स कार/घंटे से निपटने में सक्षम होने के नाते यह एक राजमार्ग लेन की तरह है। अधिक लेन बनाओ।

+0

धन्यवाद क्लेमेंस। मेरे पास संस्थाओं पर एक सवाल था। मेरे मूल प्रश्न पोस्ट में जो लेख मैंने एम्बेड किया था, वह भी संस्थाओं को संदर्भित करता है। जब हम कई संस्थाओं को कहते हैं, तो क्या हम संस्थाओं या विषयों के रूप में संस्थाओं का जिक्र कर रहे हैं। तो क्या आप सुझाव दे रहे हैं कि संदेशों को एक विषय/कतार पर प्रकाशित करने के बजाय, सुझाव उन्हें कई विषयों/कतारों पर प्रकाशित करना है? एक और प्रश्न था। क्या हम जानते हैं कि Azure विषयों/कतारों को विभाजित करता है? क्या हमारे पास एक ही मशीन पर एक विषय चल रहा है? Azure किस चरण में 10 विषयों के लिए <1 नोड शामिल करने के लिए लोड संतुलन करने का फैसला करता है? – phebbar

+0

जब मैं इकाई कहता हूं तो मेरा मतलब या तो एक कतार या विषय है। प्रत्येक पंक्ति और/या विषय एक भंडारण लॉग और एक आंतरिक प्रबंधक है कि "मालिक" इकाई और आदेश पर निर्णय करता है और यह भी अनुक्रम नंबरिंग का प्रबंधन करता है। प्रबंधक किसी भी समय किसी नोड पर चलता है, लेकिन एसोसिएशन एक पल की सूचना पर किसी अन्य नोड पर स्विच कर सकता है। "MyQueue-1" जैसे "MyQueue-10" जैसे 10 कतार बनाएं और जब आप भेजते हैं तो यादृच्छिक चुनें। –

+0

धन्यवाद एंटिटी के आसपास स्पष्टता देने के लिए क्लेमेंस। कारणों में से युगल मैं तुम्हें द्वारा सुझाए गए विकल्प पसंद नहीं है => 1. जब मैं शुरू मैं केवल 1000 अनुरोध/सेकंड के लिए होता है और मैं कतार के 10s की जरूरत नहीं है (हालांकि कि पैमाने पर करने के तरीका हो सकता है)। जब ग्राहक आधार बढ़ता है, तो 10 कतार भी पर्याप्त नहीं हो सकती हैं। या तो मेरे पास बहुत सी कतारें होंगी या मैं अपर्याप्त कतार भी ले सकता हूं। 2. मेरे पास पहले से ही विभिन्न प्रकार के संदेशों को पारित करने के लिए अद्वितीय विषयों के 10 हैं। यदि मेरे पास इनमें से प्रत्येक विषय की 10 प्रतियां हैं, तो विषयों की संख्या बढ़ जाती है। सुनिश्चित नहीं है कि इसका कोई अन्य दुष्प्रभाव है या नहीं? – phebbar

2

सेवा बस की अपनी सीमाएं हैं "क्षमता और Quotas ", इन आलेखों के बहुत अच्छे अवलोकन के लिए इस आलेख को देखें: http://msdn.microsoft.com/en-us/library/windowsazure/hh767287.aspx

मेरा सुझाव है कि यदि आप एक उपयोग केस है जो Azure Service Bus की सीमाओं को धक्का दे, तो एमएसएफटी ने समर्पित टीमों को अपने स्थानीय एमएसएफटी विशेषज्ञ तक पहुंचने का सुझाव दिया है रेडमंड (दुनिया भर में) में जो आपकी मदद कर सकते हैं डिजाइन और बड़े पैमाने पर इन सीमाओं धक्का, इस Windows Azure कैट (ग्राहक सलाहकार टीम) है। उनका लक्ष्य असली दुनिया की ग्राहक समस्याओं को हल करना है और ऐसा लगता है कि आपके पास एक हो सकता है ...

आपको अपने विशिष्ट परिदृश्य के आधार पर उपरोक्त प्रश्नों के सभी उत्तरों तक पहुंचने के लिए प्रदर्शन और लोड परीक्षण की आवश्यकता है।

Azure कैट टीम सेवा बस (सामान्य रूप में Azure) के साथ क्षमता और लोड परीक्षण पर मैट्रिक्स की एक धन है, ये हमेशा सार्वजनिक रूप से उपलब्ध तो फिर यदि आप कर सकते हैं बाहर तक पहुँचने रहे हैं ...

+0

बहुत बहुत धन्यवाद। यह बहुत उपयोगी है। – phebbar

+0

या इससे भी बेहतर, आप क्लेमेंस को इसका जवाब देने के लिए मिलता है! – user728584

1

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

+0

धन्यवाद। मैं इस अवधारणा के बारे में समझता हूं। मेरा प्रश्न विशेष रूप से सर्विसबस पर था - यदि समवर्ती अनुरोधों के 1000s हैं तो यह कैसे स्केल करेगा। – phebbar

7

इन उत्तरों के बाद से, माइक्रोसॉफ्ट नई क्षमता का एक टन जारी किया है।

  1. Azure ऑटो स्केल एक कतार (या CPU लोड) में संदेशों की निगरानी और शुरू करने या उदाहरणों को रोकने कि लक्ष्य बनाए रखने के लिए कर सकते हैं।
  2. सेवा बस पेश की गई विभाजनित कतार (विषय)। यह आपको एकाधिक कतारों पर संदेश भेजने देता है लेकिन वे आपके लिए एक कतार की तरह दिखते हैं। एक कतार के थ्रूपुट को नाटकीय रूप से बढ़ाना।

तुम कोशिश इससे पहले कि आप यह है कि मैं सलाह देते हैं कार्य करें: -

  • Async & Batched कतार में लिखता है।
  • पढ़ता है पर
  • प्रीफ़ेच पैरामीटर बदलें।
  • इसके अलावा Receive.OnMessage को देखो() सुनिश्चित करने के लिए आप संदेशों millisec वे उपलब्ध हैं मिलता है।

यह आपके PERF को ~ 5 संदेशों/सेकंड से 100 से 100 या 1,000 प्रति सेकेंड में सुधार देगा।

+0

क्या 5 संदेश/सेक अधिकतम है जो आप गैर-विभाजित कतारों के लिए देख रहे थे? .NET और NodeJS दोनों में? –

संबंधित मुद्दे