தமிழ்

மைக்ரோசர்விஸ் கட்டமைப்புகளில் பகிரப்பட்ட பரிவர்த்தனைகளை நிர்வகிப்பதற்கான சாகா மாதிரி பற்றிய ஆழமான பார்வை, அதன் நன்மைகள், சவால்கள் மற்றும் செயலாக்க உத்திகளை உள்ளடக்கியது.

சாகா மாதிரி: மைக்ரோசர்விஸ்களுக்கான பகிரப்பட்ட பரிவர்த்தனைகளை செயல்படுத்துதல்

மைக்ரோசர்விஸ் உலகில், பல சேவைகளில் தரவு நிலைத்தன்மையை பராமரிப்பது ஒரு குறிப்பிடத்தக்க சவாலாக இருக்கலாம். ஒற்றைக்கட்டுமான (monolithic) பயன்பாடுகளில் பொதுவாகப் பயன்படுத்தப்படும் பாரம்பரிய ACID (Atomicity, Consistency, Isolation, Durability) பரிவர்த்தனைகள், பகிரப்பட்ட சூழல்களுக்குப் பெரும்பாலும் பொருந்தாது. இங்குதான் சாகா மாதிரி (Saga pattern) வருகிறது, இது பகிரப்பட்ட பரிவர்த்தனைகளை நிர்வகிக்கவும், மைக்ரோசர்விஸ்களில் தரவு ஒருமைப்பாட்டை உறுதி செய்யவும் ஒரு வலுவான தீர்வை வழங்குகிறது.

சாகா மாதிரி என்றால் என்ன?

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

ஒரு சாகாவில் உள்ள ஒவ்வொரு உள்ளூர் பரிவர்த்தனையும் ஒரு மைக்ரோசர்விஸின் தரவுத்தளத்தை புதுப்பிக்கிறது. பரிவர்த்தனைகளில் ஒன்று தோல்வியுற்றால், முந்தைய பரிவர்த்தனைகளால் செய்யப்பட்ட மாற்றங்களை செயல்தவிர்க்க சாகா தொடர்ச்சியான ஈடுசெய்யும் பரிவர்த்தனைகளை (compensating transactions) செயல்படுத்துகிறது, இதன் மூலம் ஒட்டுமொத்த செயல்பாட்டையும் திறம்பட பின்னுக்குத் திருப்புகிறது (rolling back).

சாகா மாதிரியை ஏன் பயன்படுத்த வேண்டும்?

மைக்ரோசர்விஸ் கட்டமைப்புகளில் பரிவர்த்தனைகளை நிர்வகிப்பதற்கு சாகா மாதிரியை ஒரு மதிப்புமிக்க கருவியாக மாற்றும் பல காரணிகள் உள்ளன:

ACID மற்றும் BASE ஒப்பீடு

சாகா மாதிரியைப் பயன்படுத்தலாமா என்பதைத் தீர்மானிக்கும்போது ACID மற்றும் BASE (Basically Available, Soft state, Eventually consistent) இடையிலான வேறுபாட்டைப் புரிந்துகொள்வது முக்கியமானது.

இரண்டு முக்கிய சாகா செயலாக்க உத்திகள்

சாகா மாதிரியைச் செயல்படுத்த இரண்டு முதன்மை வழிகள் உள்ளன: கோரியோகிராஃபி மற்றும் ஆர்கெஸ்ட்ரேஷன்.

1. கோரியோகிராஃபி-அடிப்படையிலான சாகா

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

இது எவ்வாறு செயல்படுகிறது:

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

எடுத்துக்காட்டு: மின்வணிக ஆர்டர் கொடுத்தல் (கோரியோகிராஃபி)

  1. ஆர்டர் சேவை: ஒரு புதிய ஆர்டர் கோரிக்கையைப் பெற்று `OrderCreated` நிகழ்வை வெளியிடுகிறது.
  2. இருப்பு சேவை: `OrderCreated` க்கு குழுசேர்கிறது. நிகழ்வைப் பெற்றவுடன், அது இருப்பை சரிபார்க்கிறது. போதுமானதாக இருந்தால், அது பொருட்களை ஒதுக்கி `InventoryReserved` நிகழ்வை வெளியிடுகிறது. போதுமானதாக இல்லாவிட்டால், `InventoryReservationFailed` நிகழ்வை வெளியிடுகிறது.
  3. கட்டண சேவை: `InventoryReserved` க்கு குழுசேர்கிறது. நிகழ்வைப் பெற்றவுடன், அது கட்டணத்தைச் செயல்படுத்துகிறது. வெற்றிகரமாக இருந்தால், `PaymentProcessed` நிகழ்வை வெளியிடுகிறது. தோல்வியுற்றால், `PaymentFailed` நிகழ்வை வெளியிடுகிறது.
  4. கப்பல் சேவை: `PaymentProcessed` க்கு குழுசேர்கிறது. நிகழ்வைப் பெற்றவுடன், அது கப்பலைத் தயார் செய்து `ShipmentPrepared` நிகழ்வை வெளியிடுகிறது.
  5. ஆர்டர் சேவை: `ShipmentPrepared` க்கு குழுசேர்கிறது. நிகழ்வைப் பெற்றவுடன், அது ஆர்டரை முழுமையானதாகக் குறிக்கிறது.
  6. ஈடுசெய்தல்: `PaymentFailed` அல்லது `InventoryReservationFailed` வெளியிடப்பட்டால், மற்ற சேவைகள் கேட்டு ஈடுசெய்யும் பரிவர்த்தனைகளைச் செய்கின்றன (எ.கா., ஒதுக்கப்பட்ட இருப்பை விடுவித்தல்).

கோரியோகிராஃபியின் நன்மைகள்:

கோரியோகிராஃபியின் தீமைகள்:

2. ஆர்கெஸ்ட்ரேஷன்-அடிப்படையிலான சாகா

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

இது எவ்வாறு செயல்படுகிறது:

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

எடுத்துக்காட்டு: மின்வணிக ஆர்டர் கொடுத்தல் (ஆர்கெஸ்ட்ரேஷன்)

  1. ஆர்டர் ஒருங்கிணைப்பாளர்: ஒரு புதிய ஆர்டர் கோரிக்கையைப் பெறுகிறது.
  2. ஆர்டர் ஒருங்கிணைப்பாளர்: பொருட்களை ஒதுக்க இருப்பு சேவைக்கு ஒரு கட்டளையை அனுப்புகிறது.
  3. இருப்பு சேவை: பொருட்களை ஒதுக்கி ஆர்டர் ஒருங்கிணைப்பாளருக்குத் தெரிவிக்கிறது.
  4. ஆர்டர் ஒருங்கிணைப்பாளர்: கட்டணத்தைச் செயல்படுத்த கட்டண சேவைக்கு ஒரு கட்டளையை அனுப்புகிறது.
  5. கட்டண சேவை: கட்டணத்தைச் செயல்படுத்தி ஆர்டர் ஒருங்கிணைப்பாளருக்குத் தெரிவிக்கிறது.
  6. ஆர்டர் ஒருங்கிணைப்பாளர்: கப்பலைத் தயாரிக்க கப்பல் சேவைக்கு ஒரு கட்டளையை அனுப்புகிறது.
  7. கப்பல் சேவை: கப்பலைத் தயாரித்து ஆர்டர் ஒருங்கிணைப்பாளருக்குத் தெரிவிக்கிறது.
  8. ஆர்டர் ஒருங்கிணைப்பாளர்: ஆர்டரை முழுமையானதாகக் குறிக்கிறது.
  9. ஈடுசெய்தல்: ஏதேனும் ஒரு படி தோல்வியுற்றால், ஆர்டர் ஒருங்கிணைப்பாளர் தொடர்புடைய சேவைகளுக்கு ஈடுசெய்யும் கட்டளைகளை அனுப்புகிறது (எ.கா., ஒதுக்கப்பட்ட இருப்பை விடுவித்தல்).

ஆர்கெஸ்ட்ரேஷனின் நன்மைகள்:

ஆர்கெஸ்ட்ரேஷனின் தீமைகள்:

ஈடுசெய்யும் பரிவர்த்தனைகளை செயல்படுத்துதல்

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

ஈடுசெய்யும் பரிவர்த்தனைகளுக்கான முக்கியக் கருத்தாய்வுகள்:

ஈடுசெய்யும் பரிவர்த்தனைகளின் எடுத்துக்காட்டுகள்:

சவால்கள் மற்றும் கருத்தாய்வுகள்

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

பயன்பாட்டு வழக்குகள் மற்றும் எடுத்துக்காட்டுகள்

சாகா மாதிரி பல்வேறு பயன்பாட்டு வழக்குகளுக்கு, குறிப்பாக பகிரப்பட்ட அமைப்புகள் மற்றும் மைக்ரோசர்விஸ் கட்டமைப்புகளில் மிகவும் பொருத்தமானது. இங்கே சில பொதுவான எடுத்துக்காட்டுகள்:

எடுத்துக்காட்டு: உலகளாவிய வங்கிப் பரிவர்த்தனை

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

  1. பரிவர்த்தனையைத் தொடங்குதல்: வாடிக்கையாளர் தங்கள் கணக்கிலிருந்து வங்கி A (அமெரிக்காவில் அமைந்துள்ளது) யில் இருந்து பெறுநரின் கணக்கிற்கு வங்கி B (ஜெர்மனியில் அமைந்துள்ளது) க்கு நிதி பரிமாற்றத்தைத் தொடங்குகிறார்.
  2. வங்கி A - கணக்கு சரிபார்ப்பு: வங்கி A வாடிக்கையாளரின் கணக்கைச் சரிபார்க்கிறது, போதுமான நிதியைச் சரிபார்க்கிறது, மேலும் எந்தத் தடைகளும் அல்லது கட்டுப்பாடுகளும் இல்லை என்பதை உறுதி செய்கிறது.
  3. இணக்கச் சோதனை (வங்கி A): வங்கி A, பணமோசடி தடுப்பு (AML) விதிமுறைகள் அல்லது எந்தவொரு சர்வதேசத் தடைகளையும் பரிவர்த்தனை மீறவில்லை என்பதை உறுதிசெய்ய இணக்கச் சோதனையை நடத்துகிறது.
  4. நிதிப் பரிமாற்றம் (வங்கி A): வங்கி A வாடிக்கையாளரின் கணக்கிலிருந்து பணத்தைப் பற்று வைத்து, அதை ஒரு தீர்வகத்திற்கு (clearinghouse) அல்லது இடைநிலை வங்கிக்கு அனுப்புகிறது.
  5. தீர்வகச் செயலாக்கம்: தீர்வகம் பரிவர்த்தனையைச் செயல்படுத்துகிறது, நாணய மாற்றத்தை (USD-லிருந்து EUR-க்கு) செய்கிறது, மேலும் நிதியை வங்கி B க்கு அனுப்புகிறது.
  6. வங்கி B - கணக்கு சரிபார்ப்பு: வங்கி B பெறுநரின் கணக்கைச் சரிபார்த்து, அது செயலில் உள்ளதா மற்றும் நிதியைப் பெறத் தகுதியானதா என்பதை உறுதி செய்கிறது.
  7. இணக்கச் சோதனை (வங்கி B): வங்கி B ஜெர்மன் மற்றும் ஐரோப்பிய ஒன்றிய விதிமுறைகளுக்கு இணங்க அதன் சொந்த இணக்கச் சோதனையை நடத்துகிறது.
  8. கணக்கில் வரவு வைத்தல் (வங்கி B): வங்கி B பெறுநரின் கணக்கில் பணத்தை வரவு வைக்கிறது.
  9. உறுதிப்படுத்தல்: வங்கி B, வங்கி A க்கு ஒரு உறுதிப்படுத்தல் செய்தியை அனுப்புகிறது, அது பின்னர் பரிவர்த்தனை முடிந்துவிட்டது என்று வாடிக்கையாளருக்குத் தெரிவிக்கிறது.

ஈடுசெய்யும் பரிவர்த்தனைகள்:

கருவிகள் மற்றும் தொழில்நுட்பங்கள்

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

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

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

முடிவுரை

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

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