मैं वर्तमान में Azure कतार से अनुरोधों को संसाधित करने के लिए Azure webjobs का उपयोग करता हूं। एक दिन में, एक एकल वेबजॉब कतार से 5,000 संदेशों को संसाधित कर सकता है। प्रत्येक संदेश को अधिकतम २० सेकंड के लिए संसाधित किया जाता है। वेबजॉब एक ​​नए संदेश के लिए कतार को सुनता रहता है। आगमन पर, संदेश को चुनता है और उसे संसाधित करता है।

मैंने फ़ंक्शन ऐप्स के बारे में पढ़ा है और क्योंकि वे स्वचालित स्केलिंग और अधिक अनुकूल मूल्य निर्धारण का समर्थन करते हैं, मैं उन्हें चुनना चाहता हूं लेकिन मैं वर्तमान में उनके लिए जाने के बारे में कोई ठोस निर्णय लेने में सक्षम नहीं हूं।

मेरी मुख्य चिंता काम का बोझ प्रभाव है। यदि कतार ट्रिगर फ़ंक्शन ऐप अभी भी 20 सेकंड में एक संदेश संसाधित कर रहा है और अन्य 50 संदेश कतार में छोड़ दिए गए हैं क्योंकि यह अभी भी पहले संदेश को संसाधित कर रहा है। क्या यह दूसरे संदेश को संसाधित करने से पहले पहले संदेश के पूरा होने की प्रतीक्षा करेगा या क्या यह दूसरे संदेश को संभालने के लिए उसी फ़ंक्शन ऐप का दूसरा नोड/इंस्टेंस बनाता है और तीसरा .... 50 वां संदेश?

यदि यह फ़ंक्शन ऐप के कई इंस्टेंस बनाता है, तो क्या इन नए बनाए गए इंस्टेंस में अधिकतम संसाधन हैं जिनका वे उपयोग कर सकते हैं जैसे अधिकतम 6 प्रोसेसर और 5GB रैम या क्या वे क्लाउड में उपलब्ध संसाधनों तक बढ़ते हैं?

1
Conrad 22 अक्टूबर 2018, 13:56

1 उत्तर

सबसे बढ़िया उत्तर

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

0
MarkXA 22 अक्टूबर 2018, 11:15