தமிழ்

தவறு சகிப்புத்தன்மைக்கான சர்க்யூட் பிரேக்கர் மாதிரியை ஆராய்ந்து, பயன்பாட்டின் மீள்தன்மை மற்றும் நிலைத்தன்மையை மேம்படுத்துங்கள். அதன் செயல்படுத்தல், நன்மைகள் மற்றும் உலகளாவிய எடுத்துக்காட்டுகளைக் கற்றுக்கொள்ளுங்கள்.

சர்க்யூட் பிரேக்கர்: நவீன பயன்பாடுகளுக்கான ஒரு வலிமையான தவறு சகிப்புத்தன்மை மாதிரி

மென்பொருள் மேம்பாட்டுத் துறையில், குறிப்பாக மைக்ரோசர்வீசஸ் கட்டமைப்புகள் மற்றும் பரவலாக்கப்பட்ட அமைப்புகளில், பயன்பாட்டின் மீள்தன்மையை உறுதி செய்வது மிக முக்கியம். கூறுகள் தோல்வியடையும் போது, தொடர் தோல்விகளைத் தடுப்பதும், நிலையான மற்றும் பதிலளிக்கக்கூடிய பயனர் அனுபவத்தைப் பராமரிப்பதும் அவசியமாகும். சர்க்யூட் பிரேக்கர் மாதிரி, இதுபோன்ற சூழ்நிலைகளில் தவறு சகிப்புத்தன்மை மற்றும் நேர்த்தியான சிதைவை அடைய ஒரு சக்திவாய்ந்த தீர்வாக வெளிப்படுகிறது.

சர்க்யூட் பிரேக்கர் மாதிரி என்றால் என்ன?

சர்க்யூட் பிரேக்கர் மாதிரி, அதிக மின்னோட்டத்தால் ஏற்படும் சேதத்திலிருந்து சுற்றுகளைப் பாதுகாக்கும் மின்சுற்று உடைப்பானால் ஈர்க்கப்பட்டது. மென்பொருளில், இது தோல்வியடையக்கூடிய செயல்பாடுகளுக்கு ஒரு ப்ராக்ஸியாக செயல்படுகிறது, தோல்வியடைய வாய்ப்புள்ள ஒரு செயல்பாட்டை மீண்டும் மீண்டும் இயக்க முயற்சிப்பதை ஒரு பயன்பாட்டைத் தடுக்கிறது. இந்த முன்கூட்டிய அணுகுமுறை வளங்களை வீணாக்குவதைத் தவிர்க்கிறது, தாமதத்தைக் குறைக்கிறது, மற்றும் இறுதியில் கணினி நிலைத்தன்மையை மேம்படுத்துகிறது.

ஒரு சேவை தொடர்ந்து பதிலளிக்கத் தவறும்போது, சர்க்யூட் பிரேக்கர் "திறந்து", அந்த சேவைக்கான மேலதிக கோரிக்கைகளைத் தடுக்கிறது என்பதே இதன் முக்கிய யோசனை. ஒரு குறிப்பிட்ட காலத்திற்குப் பிறகு, சர்க்யூட் பிரேக்கர் "பாதி-திறந்த" நிலைக்குள் நுழைகிறது, இது ஒரு குறிப்பிட்ட எண்ணிக்கையிலான சோதனை கோரிக்கைகளை அனுப்ப அனுமதிக்கிறது. இந்த கோரிக்கைகள் வெற்றி பெற்றால், சர்க்யூட் பிரேக்கர் "மூடி", சாதாரண செயல்பாட்டை மீண்டும் தொடங்குகிறது. அவை தோல்வியுற்றால், சர்க்யூட் பிரேக்கர் திறந்தே இருக்கும், மற்றும் இந்த சுழற்சி மீண்டும் தொடர்கிறது.

சர்க்யூட் பிரேக்கரின் நிலைகள்

சர்க்யூட் பிரேக்கர் மூன்று தனித்துவமான நிலைகளில் செயல்படுகிறது:

சர்க்யூட் பிரேக்கர் மாதிரியைப் பயன்படுத்துவதன் நன்மைகள்

சர்க்யூட் பிரேக்கர் மாதிரியைச் செயல்படுத்துவது பல முக்கிய நன்மைகளை வழங்குகிறது:

செயல்படுத்தல் பரிசீலனைகள்

சர்க்யூட் பிரேக்கர் மாதிரியை திறம்பட செயல்படுத்த பல காரணிகளை கவனமாக பரிசீலிக்க வேண்டும்:

எடுத்துக்காட்டு செயல்படுத்தல்கள்

சர்க்யூட் பிரேக்கர் மாதிரியை பல்வேறு நிரலாக்க மொழிகள் மற்றும் கட்டமைப்புகளைப் பயன்படுத்தி செயல்படுத்தலாம். இதோ சில எடுத்துக்காட்டுகள்:

Resilience4j உடன் ஜாவா

Resilience4j என்பது ஒரு பிரபலமான ஜாவா நூலகமாகும், இது சர்க்யூட் பிரேக்கர், ரிட்ரை, ரேட் லிமிட்டர் மற்றும் பல்க்ஹெட் உள்ளிட்ட தவறு சகிப்புத்தன்மை கருவிகளின் விரிவான தொகுப்பை வழங்குகிறது. இதோ ஒரு அடிப்படை எடுத்துக்காட்டு:


CircuitBreakerConfig circuitBreakerConfig = CircuitBreakerConfig.custom()
    .failureRateThreshold(50)
    .waitDurationInOpenState(Duration.ofMillis(1000))
    .permittedNumberOfCallsInHalfOpenState(2)
    .slidingWindowSize(10)
    .build();

CircuitBreaker circuitBreaker = CircuitBreaker.of("myService", circuitBreakerConfig);

Supplier<String> decoratedSupplier = CircuitBreaker
    .decorateSupplier(circuitBreaker, () -> myRemoteService.getData());

try {
    String result = decoratedSupplier.get();
    // Process the result
} catch (RequestNotPermitted e) {
    // Handle the open circuit
    System.err.println("Circuit is open: " + e.getMessage());
}

Pybreaker உடன் பைதான்

Pybreaker என்பது ஒரு பைதான் நூலகமாகும், இது ஒரு எளிய மற்றும் பயன்படுத்த எளிதான சர்க்யூட் பிரேக்கர் செயலாக்கத்தை வழங்குகிறது.


import pybreaker

breaker = pybreaker.CircuitBreaker(fail_max=3, reset_timeout=10)

@breaker
def unreliable_function():
    # Your unreliable function call here
    pass

try:
    unreliable_function()
except pybreaker.CircuitBreakerError:
    print("Circuit Breaker is open!")

Polly உடன் .NET

Polly என்பது ஒரு .NET மீள்தன்மை மற்றும் தற்காலிக-தவறு-கையாளும் நூலகமாகும், இது டெவலப்பர்களை ரிட்ரை, சர்க்யூட் பிரேக்கர், டைம்அவுட் மற்றும் பல்க்ஹெட் போன்ற கொள்கைகளை ஒரு சரளமான மற்றும் இயற்றக்கூடிய முறையில் வெளிப்படுத்த அனுமதிக்கிறது.


var circuitBreakerPolicy = Policy
    .Handle<Exception>()
    .CircuitBreakerAsync(
        exceptionsAllowedBeforeBreaking: 3,
        durationOfBreak: TimeSpan.FromSeconds(10),
        onBreak: (exception, timespan) =>
        {
            Console.WriteLine("Circuit Breaker opened: " + exception.Message);
        },
        onReset: () =>
        {
            Console.WriteLine("Circuit Breaker reset.");
        },
        onHalfOpen: () =>
        {
            Console.WriteLine("Circuit Breaker half-opened.");
        });


try
{
    await circuitBreakerPolicy.ExecuteAsync(async () =>
    {
        // Your unreliable operation here
        await MyRemoteService.GetDataAsync();
    });
}
catch (Exception ex)
{
    Console.WriteLine("Handled exception: " + ex.Message);
}

நிஜ உலக எடுத்துக்காட்டுகள்

சர்க்யூட் பிரேக்கர் மாதிரி பல்வேறு தொழில்கள் மற்றும் பயன்பாடுகளில் பரவலாகப் பயன்படுத்தப்படுகிறது:

சர்க்யூட் பிரேக்கர் vs. ரிட்ரை மாதிரி

சர்க்யூட் பிரேக்கர் மற்றும் ரிட்ரை மாதிரிகள் இரண்டும் தவறு சகிப்புத்தன்மைக்காகப் பயன்படுத்தப்பட்டாலும், அவை வெவ்வேறு நோக்கங்களுக்குச் சேவை செய்கின்றன.

சில சமயங்களில், இந்த மாதிரிகளை ஒன்றாகப் பயன்படுத்தலாம். எடுத்துக்காட்டாக, நீங்கள் ஒரு சர்க்யூட் பிரேக்கருக்குள் ஒரு ரிட்ரை மாதிரியைச் செயல்படுத்தலாம். சேவை தொடர்ந்து தோல்வியுற்றால் சர்க்யூட் பிரேக்கர் அதிகப்படியான மறு முயற்சிகளைத் தடுக்கும், அதே நேரத்தில் சர்க்யூட் பிரேக்கர் தூண்டப்படுவதற்கு முன்பு ரிட்ரை மாதிரி தற்காலிகப் பிழைகளைக் கையாளும்.

தவிர்க்க வேண்டிய எதிர்-மாதிரிகள்

சர்க்யூட் பிரேக்கர் ஒரு சக்திவாய்ந்த கருவியாக இருந்தாலும், சாத்தியமான எதிர்-மாதிரிகளைப் பற்றி அறிந்திருப்பது முக்கியம்:

மேம்பட்ட கருத்துக்கள்

முடிவுரை

சர்க்யூட் பிரேக்கர் மாதிரி, மீள்தன்மை மற்றும் தவறு சகிப்புத்தன்மை கொண்ட பயன்பாடுகளை உருவாக்குவதற்கான ஒரு இன்றியமையாத கருவியாகும், குறிப்பாக மைக்ரோசர்வீசஸ் கட்டமைப்புகள் மற்றும் பரவலாக்கப்பட்ட அமைப்புகளில். தொடர் தோல்விகளைத் தடுப்பதன் மூலமும், தாமதத்தைக் குறைப்பதன் மூலமும், நேர்த்தியான சிதைவை செயல்படுத்துவதன் மூலமும், இது பயன்பாட்டின் நிலைத்தன்மையை மேம்படுத்துகிறது மற்றும் பயனர் அனுபவத்தை மேம்படுத்துகிறது. செயல்படுத்தல் விவரங்களை கவனமாகக் கருத்தில் கொண்டு, பொதுவான எதிர்-மாதிரிகளைத் தவிர்ப்பதன் மூலம், நீங்கள் சர்க்யூட் பிரேக்கர் மாதிரியை திறம்படப் பயன்படுத்தி மேலும் வலிமையான மற்றும் நம்பகமான மென்பொருள் அமைப்புகளை உருவாக்க முடியும். அதன் உலகளாவிய பயன்பாடு, ஒரு பன்முக மற்றும் சர்வதேச பயனர் தளத்திற்காக வடிவமைக்கப்பட்ட எந்தவொரு பயன்பாட்டிற்கும் இது ஒரு முக்கியமான கருத்தாக அமைகிறது. சர்க்யூட் பிரேக்கர் மாதிரியைப் புரிந்துகொள்வதும் செயல்படுத்துவதும் நவீன மென்பொருள் பொறியியல் நடைமுறைகளுக்கு மிக முக்கியமானது. சாத்தியமான தோல்விகளை முன்கூட்டியே நிவர்த்தி செய்வதன் மூலம், டெவலப்பர்கள் பரவலாக்கப்பட்ட கணினிமயமாக்கலின் தவிர்க்க முடியாத சவால்களைச் சமாளிக்க சிறப்பாகத் தயாராக இருக்கும் அமைப்புகளை உருவாக்க முடியும்.