घातीय बैकऑफ़

एक्सपोनेंशियल बैकऑफ़ रिट्राई को हर बार विलंब को दोगुना करके (0.5 सेकंड, 1 सेकंड, 2 सेकंड, 4 सेकंड) एक सीमा तक बढ़ाता है, जिससे संघर्षरत सर्वर को रिकवर होने का समय मिल जाता है। जिटर प्रत्येक विलंब को यादृच्छिक बनाता है, क्योंकि इसके बिना, एक ही समय में विफल होने वाला प्रत्येक क्लाइंट एक ही समय में पुनः प्रयास करता है, जिससे विफलता का कारण बनने वाला स्पाइक फिर से उत्पन्न हो जाता है।

यह काम किस प्रकार करता है

एक सामान्य नीति: शून्य और आधार × 2^प्रयास के बीच एक यादृच्छिक समय तक प्रतीक्षा करें, जिसकी अधिकतम सीमा तय हो, और निश्चित संख्या में प्रयासों या कुल समय के बाद रुक जाएं। केवल उन्हीं कार्यों को पुनः प्रयास करें जिन्हें पुनः प्रयास करना सुरक्षित हो — जैसे कि आइडम्पोटेंट विधियाँ, या आइडम्पोटेंसी कुंजी द्वारा सुरक्षित लेखन — और केवल क्षणिक विफलताओं पर ही: टाइमआउट, 429, 502, 503, 504।

गलत धारणा

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

इसे यहाँ आजमाएँ

फ़ॉल्ट इंजेक्शन एपीआई को PUT /faults/v1/config के साथ कॉन्फ़िगर करें — उदाहरण के लिए, विफलता दर 0.5 और स्थिति 503 — फिर GET /faults/v1/target को बार-बार कॉल करें ताकि यह देखा जा सके कि आपकी रिट्राई पॉलिसी एक अस्थिर निर्भरता से कैसे निपटती है।

स्रोत

अन्य शब्द

यह पृष्ठ अंग्रेज़ी में पढ़ें

सभी शब्द · परीक्षण तकनीकें · सभी 39 मॉक REST API

आखरी अपडेट