9

का उपयोग करना बेहतर है, हम अपने एपिस को पायथन से नोड तक ले जा रहे हैं। हमने अपने पायथन ऐप इंजन एपीआईएस के साथ कार्य कतारों का उपयोग किया है। Node.js के साथ अब ऐप इंजन पर समर्थित है, क्या आप सुझाव देते हैं कि हम कार्यों के लिए कार्य कतार या क्लाउड पब/उप का उपयोग करें? विश्वसनीयता, पोर्टेबिलिटी इत्यादि सहित प्रत्येक के लिए पेशेवर/विपक्ष क्या होगाऐप इंजन पर node.js के साथ, क्या यह कार्य कतारों या पब/उप

उत्तर

10

कार्य कतार और पब/उप में अलग-अलग संदेश मॉडल हैं, और इस प्रकार विभिन्न चीजों के लिए उपयोगी हैं। जबकि पब/सब प्रकाशक-ग्राहक मॉडल का उपयोग करता है, कार्य कतार श्रमिकों को कार्यों को एकत्र और वितरित करती है।

कार्यों को वितरित करने के लिए पब/सब का उपयोग करना कार्य कतार का उपयोग करने जितना स्वाभाविक नहीं होगा। पब/सब विषय के सभी ग्राहक सभी संदेशों को देखते हैं, जबकि कार्य कतार में, एक संदेश केवल एक रिसीवर द्वारा खपत किया जाता है। फ्लिप पक्ष पर, कार्य कतारों को संदेशों को प्रसारित करने के उद्देश्य से डिज़ाइन नहीं किया गया है।

इस पल के लिए, कार्य कतार ऐप इंजन पर सबसे अच्छा काम करती है। यद्यपि एक प्रयोगात्मक कार्य कतार आरईएसटी एपीआई है, लेकिन कार्य कतार ऐप इंजन पर सर्वोत्तम और संचालित होती हैं। पब/सब कहीं से भी इस्तेमाल किया जा सकता है। जबकि कार्य कतार कार्य स्वचालित रूप से ऐप इंजन के उदाहरणों में वितरित किए जाते हैं, आपको इंट्रा-एप्लिकेशन संचार के लिए पब/सब का उपयोग करने के लिए अतिरिक्त सेटअप करने की आवश्यकता होगी।

कार्य कतार भी विशेष सुविधाओं प्रदान करते हैं, जैसे संदेशों में देरी।

संपादित करें:

दुर्भाग्य से ऐसा लगता है कि धक्का कार्य कतारों Node.js App इंजन क्रम पर अभी तक तैयार नहीं कर रहे हैं।

पब/उप समाधान कमल नीचे बताए गए पुल-आधारित लोड संतुलन को अनुकरण करने के लिए एक अच्छी चाल है। यदि आप पुल मोड के साथ ठीक हैं तो पब/सब का उपयोग करना शायद सही तरीका है, हालांकि मैं इसे स्पष्ट करना चाहता हूं कि खींचने के दौरान node.js के लिए एई टास्क्यूयू एपीआई उपलब्ध है (https://github.com/google/google-api-nodejs-client/tree/master/apis)।

यह सोचने के लिए एक बात है कि आप पुल या पुश का उपयोग करते हैं या नहीं, यह है कि पुनः प्रयास नीति थोड़ा अलग है। कार्य कतार वस्तुओं को अनिश्चित काल तक पुनः प्रयास करने के लिए कॉन्फ़िगर किया जा सकता है, जबकि मुझे लगता है कि पब/सब 7 दिनों के बाद स्वीकार नहीं किए जाने पर संदेश देने की कोशिश करना बंद कर देगा।

अन्य चीजें अगर आप पबसब धक्का मोड का उपयोग करने का फैसला विचार करने के लिए कर रहे हैं:

  • इस तरह के संदेशों में देरी या सेटिंग रहने के लिए विशिष्ट फिर से प्रयास करें या समय के साथ एक संदेश configuromg के रूप में की एई कार्य कतार कुछ सुविधा में उपलब्ध नहीं हैं PubSub
  • आपको कतार से कार्य लेने वाले उदाहरणों के लिए अंतराल जानने की आवश्यकता होगी।

एक अलग नोट पर (नीचे पहली प्रतिक्रिया के जवाब में), ऐसा लगता है कि memcache एकीकरण समर्थित है। इसमें https://cloud.google.com/appengine/docs/flexible/nodejs/caching-application-data पर स्थित एक दस्तावेज़ पृष्ठ है।

+0

तो, ऐप इंजन पर चल रहे node.js में आसान पहुंच है और कार्य पंक्तियों (पुश, पुल नहीं) के साथ सहजता से काम करते हैं? Node.js के साथ कार्यकर्ता कार्यों के लिए Google से नमूना ऐप पब/सब का उपयोग करता है, इसलिए मैं पूछता हूं। मैंने Google डॉक्स को node.js कार्य कतार या memcache एकीकरण पर अभी तक नहीं देखा है। – philipfc

+0

एकाधिक ग्राहकों पर शेष संदेश लोड करना संभव है। पब/सब विषय पर सभी _ सदस्यताएं_ सभी संदेशों को देखते हैं। हालांकि, कई ग्राहक एक ही सदस्यता से संदेश खींच सकते हैं, जो आमतौर पर प्रत्येक संदेश को उनमें से एक को वितरित करेगा (हालांकि ध्यान दें कि पब/सब ने _at-lease-one_ डिलीवरी की गारंटी दी है)। –

+0

अतिरिक्त जानकारी शामिल करने के लिए मेरी मूल प्रतिक्रिया संपादित की गई। –

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