Circuit breaker design pattern
சர்க்யூட் பிரேக்கர் என்பது மென்பொருள் மேம்பாட்டில் பயன்படுத்தப்படும் வடிவமைப்பு வடிவமாகும். இது தோல்விகளைக் கண்டறியப் பயன்படுகிறது மற்றும் பராமரிப்பின் போது, தற்காலிக வெளிப்புற கணினி செயலிழப்பு அல்லது எதிர்பாராத கணினி சிக்கல்களின் போது, தோல்வியைத் தொடர்ந்து மீண்டும் நிகழாமல் தடுப்பதற்கான தர்க்கத்தை உள்ளடக்கியது. ஒரு பயன்பாடு ஒரு தரவுத்தளத்துடன் வினாடிக்கு 100 முறை இணைக்கிறது மற்றும் தரவுத்தளம் தோல்வியடைகிறது என்று வைத்துக்கொள்வோம். பயன்பாட்டு வடிவமைப்பாளர் அதே பிழையை தொடர்ந்து மீண்டும் மீண்டும் செய்ய விரும்பவில்லை. TCP இணைப்பு காலக்கெடுவுக்காக காத்திருக்காமல் பிழையை விரைவாகவும் நேர்த்தியாகவும் கையாள அவர்கள் விரும்புகிறார்கள். பொதுவாக சர்க்யூட் பிரேக்கர் ஒரு வெளிப்புற சேவையின் கிடைக்கும் தன்மையை சரிபார்க்க பயன்படுத்தப்படலாம். ஒரு வெளிப்புற சேவை ஒரு தரவுத்தள சேவையகம் அல்லது பயன்பாட்டால் பயன்படுத்தப்படும் வலை சேவையாக இருக்கலாம். சர்க்யூட் பிரேக்கர் தோல்விகளைக் கண்டறிந்து, பயன்பாடு தோல்வியடையும் செயலைச் செய்ய முயற்சிப்பதைத் தடுக்கிறது (மீண்டும் முயற்சிப்பது பாதுகாப்பானது வரை). சர்க்யூட் பிரேக்கர் வடிவமைப்பு முறையை செயல்படுத்துவது தொடர்ச்சியான கோரிக்கைகளில் இணைப்பின் நிலையை தக்க வைத்துக் கொள்ள வேண்டும். உண்மையான கோரிக்கைகளிலிருந்து தோல்விகளைக் கண்டறிய இது தர்க்கத்தை ஏற்ற வேண்டும். எனவே, சர்க்யூட் பிரேக்கரில் உள்ள ஸ்டேட் மெஷின் அதன் வழியாக செல்லும் கோரிக்கைகளுடன் ஒரே நேரத்தில் செயல்பட வேண்டும். இதை அடைய ஒரு வழி ஒத்திசைவற்றது. மல்டி-நோட் (கிளஸ்டர்) சேவையகத்தில், அப்ஸ்ட்ரீம் சேவையின் நிலை கிளஸ்டரில் உள்ள அனைத்து முனைகளிலும் பிரதிபலிக்க வேண்டும். எனவே, செயல்படுத்தல்கள் ஒரு நிலையான சேமிப்பு அடுக்கைப் பயன்படுத்த வேண்டியிருக்கலாம், எ. கா. மெம்கேஷ் அல்லது ரெடிஸ் போன்ற நெட்வொர்க் கேச் அல்லது உள்ளூர் கேச் (வட்டு அல்லது நினைவகம் அடிப்படையிலானது) பயன்பாட்டிற்கு, ஒரு வெளிப்புற சேவை என்ன என்பதைப் பதிவு செய்ய. சர்க்யூட் பிரேக்கர் ஒரு குறிப்பிட்ட இடைவெளியில் வெளிப்புற சேவையின் நிலையை பதிவு செய்கிறது. பயன்பாட்டிலிருந்து வெளிப்புற சேவை பயன்படுத்தப்படுவதற்கு முன்பு, தற்போதைய நிலையை மீட்டெடுக்க சேமிப்பு அடுக்கு கேட்கப்படுகிறது. செயல்திறன் உட்குறிப்பு நன்மைகள் விளைவுகளை விட அதிகமாக உள்ளன என்று சொல்வது பாதுகாப்பானது என்றாலும், சர்க்யூட் பிரேக்கரை செயல்படுத்துவது சேமிப்பு இடம், பயன்பாட்டு சிக்கல் மற்றும் செயல்படுத்தும் பயன்பாட்டிற்கான கணக்கீட்டு செலவை எதிர்மறையாக பாதிக்கும். ஏனென்றால், இது சுற்றுவட்டத்தின் நிலையை சரிபார்க்க செயல்படுத்தும் பாதையில் கூடுதல் குறியீட்டைச் சேர்க்கிறது. இதை கீழே உள்ள PHP எடுத்துக்காட்டில் காணலாம், அங்கு தரவுத்தள நிலைக்கு APC ஐச் சரிபார்க்க சில கூடுதல் சுழற்சிகள் செலவாகும். மேலும், சர்க்யூட் பிரேக்கர் குறியீட்டை இயக்குவது அது இயங்கும் கணினியில் உள்ள வளங்களை பயன்படுத்துகிறது, இதனால் "உண்மையான" பயன்பாடுகளுக்கு குறைவான செயலாக்க சக்தியை விட்டுச்செல்கிறது. எவ்வளவு என்பது பயன்படுத்தப்படும் சேமிப்பு அடுக்கு மற்றும் பொதுவாக கிடைக்கக்கூடிய வளங்களைப் பொறுத்தது. இது சம்பந்தமாக மிகப்பெரிய காரணிகள் தற்காலிக சேமிப்பு வகை, எடுத்துக்காட்டாக, வட்டு அடிப்படையிலான மற்றும் நினைவக அடிப்படையிலான மற்றும் உள்ளூர் மற்றும் நெட்வொர்க். சர்க்யூட் பிரேக்கரின் வெவ்வேறு நிலைகள் மூடப்பட்ட திறந்த பாதி திறந்த மூடப்பட்ட நிலை எல்லாம் இயல்பாக இருக்கும்போது, சர்க்யூட் பிரேக்கர்கள் மூடப்பட்டிருக்கும், மேலும் அனைத்து கோரிக்கைகளும் கீழே காட்டப்பட்டுள்ளபடி சேவைகளுக்கு அனுப்பப்படுகின்றன. தோல்விகளின் எண்ணிக்கை வரம்பைத் தாண்டி அதிகரித்தால், சர்க்யூட் பிரேக்கர் பயணித்து திறந்த நிலைக்குச் செல்கிறது. திறந்த நிலையில் இந்த நிலையில் சர்க்யூட் பிரேக்கர் சேவைகளை அழைக்காமல் உடனடியாக ஒரு பிழையைத் தருகிறது. சர்க்யூட் பிரேக்கர்கள் ஒரு காலக்கெடுவுக்குப் பிறகு பாதி திறந்த நிலைக்கு நகர்கின்றன. வழக்கமாக, இது ஒரு கண்காணிப்பு அமைப்பைக் கொண்டிருக்கும், அங்கு காலக்கெடு குறிப்பிடப்படும். பாதி திறந்த நிலை இந்த நிலையில், சர்க்யூட் பிரேக்கர் மைக்ரோ சர்வீஸிலிருந்து ஒரு குறிப்பிட்ட எண்ணிக்கையிலான கோரிக்கைகளை கடந்து செல்லவும் செயல்பாட்டை அழைக்கவும் அனுமதிக்கிறது. கோரிக்கைகள் வெற்றிகரமாக இருந்தால், சர்க்யூட் பிரேக்கர் மூடிய நிலைக்குச் செல்லும். இருப்பினும், கோரிக்கைகள் தொடர்ந்து தோல்வியடைந்தால், அது மீண்டும் திறந்த நிலைக்குச் செல்லும். எடுத்துக்காட்டு செயல்படுத்தல் PHP பின்வருபவை PHP இல் ஒரு மாதிரி செயல்படுத்தல் ஆகும். கருத்தாக்கத்தின் ஆதாரம் ஒரு மைஎஸ்கியூஎல் சேவையகத்தின் நிலையை பகிரப்பட்ட நினைவக தற்காலிக சேமிப்பில் (ஏபிசி) சேமிக்கிறது. பின்வரும் ஸ்கிரிப்டை ஒரு குறிப்பிட்ட இடைவெளியில் குரோன்டேப் மூலம் இயக்க முடியும். "உள்ளூர் புரவலன்", "பயனர்பெயர்", "கடவுச்சொல்"); ("உள்ளூர் புரவலன்", "பயனர்பெயர்", "கடவுச்சொல்"); ("உள்ளூர் புரவலன்", "பயனர்பெயர்", "கடவுச்சொல்"); ("உள்ளூர் புரவலன்", "பயனர்பெயர்", "கடவுச்சொல்"); ("உள்ளூர் புரவலன்", "பயனர்பெயர்", "கடவுச்சொல்"); ("உள்ளூர் புரவலன்", "பயனர்பெயர்", "கடவுச்சொல்"); ("உள்ளூர் புரவலன்", "பயனர்பெயர்", "பயனர்பெயர்", "கடவுச்சொல்"); ("உள்ளூர் புரவலன்", "உள்ளூர் புரவலன்", "பயனர்பெயர்", "பயனர்பெயர்", "பயனர்பெயர்", "கடவுச்சொல்" தயவுசெய்து ஒரு நிமிடத்தில் மீண்டும் முயற்சிக்கவும். "; வெளியேறு;} $மைஸ்க்ளி = புதிய மைஸ்க்ளி (" "லோக்கல் ஹோஸ்ட்", "பயனர்பெயர்", "கடவுச்சொல்", "தரவுத்தளம்"); $முடிவு = $மைஸ்க்ளி-> வினவல் ("" அட்டவணையிலிருந்து தேர்ந்தெடுக்கவும் "); வெளிப்புற இணைப்புகள் வரைபடங்களுடன் பிஎச்பி செயல்படுத்தலின் எடுத்துக்காட்டு சி #ஐப் பயன்படுத்தி பாலியுடன் மீண்டும் முயற்சிக்கும் முறைமையின் எடுத்துக்காட்டு பாலி பாலி நியூஜெட் தொகுப்பைப் பயன்படுத்தி ஆண்டர்ஸ் லைபெக்கர்கர்களிடமிருந்து சி #செயல்படுத்தலின் எடுத்துக்காட்டு அலெக்ஸாண்டர் நிக்கிடினிடமிருந்து சி #செயல்படுத்தலின் எடுத்துக்காட்டு பைதான் ஸ்திரத்தன்மை வடிவங்களில் பயன்படுத்தப்படும் பைதான் ஸ்திரத்தன்மை வடிவங்களில் மார்ட்டின் ஃபோலர் பிளிக்கி மென்பொருள் வடிவமைப்பு வடிவங்கள் எடுத்துக்காட்டாக பிஎச்பி குறியீடு கொண்ட கட்டுரைகள்"