एक्सपोनेंशियल बैकऑफ़ रिट्राई को हर बार विलंब को दोगुना करके (0.5 सेकंड, 1 सेकंड, 2 सेकंड, 4 सेकंड) एक सीमा तक बढ़ाता है, जिससे संघर्षरत सर्वर को रिकवर होने का समय मिल जाता है। जिटर प्रत्येक विलंब को यादृच्छिक बनाता है, क्योंकि इसके बिना, एक ही समय में विफल होने वाला प्रत्येक क्लाइंट एक ही समय में पुनः प्रयास करता है, जिससे विफलता का कारण बनने वाला स्पाइक फिर से उत्पन्न हो जाता है।
एक सामान्य नीति: शून्य और आधार × 2^प्रयास के बीच एक यादृच्छिक समय तक प्रतीक्षा करें, जिसकी अधिकतम सीमा तय हो, और निश्चित संख्या में प्रयासों या कुल समय के बाद रुक जाएं। केवल उन्हीं कार्यों को पुनः प्रयास करें जिन्हें पुनः प्रयास करना सुरक्षित हो — जैसे कि आइडम्पोटेंट विधियाँ, या आइडम्पोटेंसी कुंजी द्वारा सुरक्षित लेखन — और केवल क्षणिक विफलताओं पर ही: टाइमआउट, 429, 502, 503, 504।
जितनी बार पुनः प्रयास किए जाएंगे, विश्वसनीयता उतनी ही अधिक होगी। असीमित पुनः प्रयास आउटेज को बढ़ा देते हैं: प्रत्येक परत जो तीन बार पुनः प्रयास करती है, उससे नीचे की परत पर भार कई गुना बढ़ जाता है। पुनः प्रयास बजट, सीमाएँ और सर्किट ब्रेकर इसलिए मौजूद हैं क्योंकि पुनः प्रयास करना स्वयं विफलता का एक कारण है।
फ़ॉल्ट इंजेक्शन एपीआई को PUT /faults/v1/config के साथ कॉन्फ़िगर करें — उदाहरण के लिए, विफलता दर 0.5 और स्थिति 503 — फिर GET /faults/v1/target को बार-बार कॉल करें ताकि यह देखा जा सके कि आपकी रिट्राई पॉलिसी एक अस्थिर निर्भरता से कैसे निपटती है।
सभी शब्द · परीक्षण तकनीकें · सभी 39 मॉक REST API
आखरी अपडेट