सर्किट ब्रेकर पैटर्न
विफल सेवाओं को कुछ समय के लिए कॉल करना रोकें।
सर्किट ब्रेकर पैटर्न, CoddyKit पर C# अकादमी का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह C# अकादमी सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C# अकादमी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
वह समस्या जिसे पुनः प्रयास हल नहीं कर सकता
यदि कोई निर्भरता वास्तव में बंद है, तो प्रत्येक अनुरोध का पुनः प्रयास करने से केवल भार बढ़ता है और आपका अपना ऐप धीमा होता है। सर्किट ब्रेकर प्रतिरूप लगातार हो रही विफलता का पता लगाता है और कुछ समय के लिए विफल सेवा को कॉल करना रोक देता है।
इलेक्ट्रॉनिक्स से लिया गया विचार
जिस तरह विद्युत ब्रेकर किसी सर्किट की सुरक्षा के लिए सक्रिय होता है, उसी तरह यह प्रतिरूप बहुत अधिक विफलताओं के बाद "खुल जाता है" और फिर अपने-आप जाँचता है कि निर्भरता ठीक हुई है या नहीं।
तीन स्थितियाँ
सर्किट ब्रेकर की तीन स्थितियाँ होती हैं: बंद (कॉल सामान्य रूप से चलती हैं), खुला (कॉल तुरंत रोक दी जाती हैं) और अर्ध-खुला (सुधार की जाँच के लिए एक परीक्षण कॉल की जाती है)।
बंद स्थिति
बंद स्थिति में अनुरोध आगे जाते हैं और Polly विफलता दर पर नज़र रखता है। यदि नमूना अवधि के भीतर विफलताएँ निर्धारित सीमा से अधिक हो जाती हैं, तो ब्रेकर खुली स्थिति में चला जाता है।
खुली स्थिति
खुली स्थिति में Polly तुरंत रास्ता रोक देता है: वह निर्भरता को कॉल किए बिना तुरंत BrokenCircuitException उठाता है। इससे निर्भरता को सुधारने का समय मिलता है और कॉल करने वाले जल्दी विफल हो जाते हैं।
try
{
await pipeline.ExecuteAsync(token => CallServiceAsync(token));
}
catch (BrokenCircuitException)
{
// circuit is open, fail fast
}अर्ध-खुली स्थिति
विराम अवधि समाप्त होने के बाद ब्रेकर अर्ध-खुली स्थिति में चला जाता है और एक परीक्षण अनुरोध की अनुमति देता है। सफलता सर्किट को बंद कर देती है; विफलता उसे एक और विराम अवधि के लिए फिर से खोल देती है।
ब्रेकर को कॉन्फ़िगर करना
Polly v8 में CircuitBreakerStrategyOptions का उपयोग किया जाता है। प्रमुख सेटिंग्स हैं: FailureRatio (जैसे 0.5 = 50%), MinimumThroughput, SamplingDuration और BreakDuration।
using Polly.CircuitBreaker;
var pipeline = new ResiliencePipelineBuilder()
.AddCircuitBreaker(new CircuitBreakerStrategyOptions
{
FailureRatio = 0.5,
MinimumThroughput = 10,
SamplingDuration = TimeSpan.FromSeconds(30),
BreakDuration = TimeSpan.FromSeconds(15)
})
.Build();FailureRatio और MinimumThroughput
FailureRatio उन विफलताओं का अनुपात है, जिन पर ब्रेकर सक्रिय होकर खुल जाता है। MinimumThroughput सुनिश्चित करता है कि ब्रेकर पर्याप्त कॉल होने के बाद ही सक्रिय हो, ताकि शुरुआत की एक विफलता उसे समय से पहले न खोल दे।
स्थिति परिवर्तनों पर प्रतिक्रिया देना
निर्भरता की स्थिति बिगड़ने पर परिवर्तनों का लॉग लिखने या चेतावनियाँ भेजने के लिए OnOpened, OnClosed और OnHalfOpened कॉलबैक का उपयोग करें।
new CircuitBreakerStrategyOptions
{
FailureRatio = 0.5,
OnOpened = args =>
{
Console.WriteLine($"Circuit opened for {args.BreakDuration}");
return default;
}
};पुनः प्रयास के साथ संयोजन
पुनः प्रयास और सर्किट ब्रेकर एक-दूसरे के पूरक हैं: पुनः प्रयास क्षणिक गड़बड़ियों को संभालता है, जबकि लगातार विफलता होने पर ब्रेकर पुनः प्रयास रोक देता है। क्रम महत्वपूर्ण है, जिस पर हम पाइपलाइन वाले पाठ में फिर चर्चा करेंगे।
मैन्युअल नियंत्रण
रखरखाव अवधि के दौरान उपयोगी, CircuitBreakerManualControl के माध्यम से आप ब्रेकर को अलग करने (बलपूर्वक खोलने) या मैन्युअल रूप से बंद करने के लिए नियंत्रित कर सकते हैं।
var manualControl = new CircuitBreakerManualControl();
await manualControl.IsolateAsync(); // force open
await manualControl.CloseAsync(); // force closedत्वरित जाँच
सर्किट ब्रेकर प्रतिरूप का परीक्षण करें।
पुनरावलोकन
सर्किट ब्रेकर संघर्ष कर रही निर्भरताओं की सुरक्षा बंद, खुली और अर्ध-खुली स्थितियों के बीच जाकर करता है। Polly v8 में FailureRatio, MinimumThroughput, SamplingDuration और BreakDuration के साथ AddCircuitBreaker ब्रेकर के सक्रिय होने को नियंत्रित करता है। खुली स्थिति में जल्दी विफल होने के लिए BrokenCircuitException उठाया जाता है, और कॉलबैक तथा मैन्युअल नियंत्रण आपको स्थिति पर नज़र रखने और उसे बदलने देते हैं।
एआई शिक्षक के साथ C# सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 93
- पाठ
- 346
अक्सर पूछे जाने वाले प्रश्न
क्या “सर्किट ब्रेकर पैटर्न” पाठ निःशुल्क है?
हाँ—“सर्किट ब्रेकर पैटर्न” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और C# अकादमी पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। C# अकादमी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“सर्किट ब्रेकर पैटर्न” में मैं क्या सीखूँगा?
विफल सेवाओं को कुछ समय के लिए कॉल करना रोकें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C# अकादमी का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या C# अकादमी शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C# अकादमी शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“सर्किट ब्रेकर पैटर्न” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस C# अकादमी पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर C# अकादमी पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- पुनःप्रयास नीतियाँ
- सर्किट ब्रेकर पैटर्न
- टाइमआउट और फ़ॉलबैक नीतियाँ
- लचीलेपन की पाइपलाइन